这是我的 base64 字符串“lFKiKF2o+W/vvLqddOdv2ttxWSUX/SSZEyqcdyDDb+8=”。
在 python2 中,以下代码有效
print("lFKiKF2o+W/vvLqddOdv2ttxWSUX/SSZEyqcdyDDb+8=".decode('base64', 'strict'))
而在 python3 中没有 str.decode('base64', 'strict') 不可用。我尝试在 python3 中执行以下相同的操作
b64EncodeStr4 = "lFKiKF2o+W/vvLqddOdv2ttxWSUX/SSZEyqcdyDDb+8="
print(len(b64EncodeStr4))
decodedByte = base64.b64decode(bytes(b64EncodeStr4, 'ascii'))
print(decodedByte)
decodeStr = decodedByte.decode('ascii', 'strict')
print(decodeStr)
我也尝试过其他编码,例如 utf-8、utf-16、utf-32。但都不起作用。在 python3 中将 base64 转换为常规字符串的最佳方法是什么。
答案1
decodeStr = decodedByte.decode('ascii', 'ignore')
答案2
在 Python3 中,只需使用 base64.b64decode。(不要忘记导入 base64 模块。)
为了例子:
import base64
b64_string = "lFKiKF2o+W/vvLqddOdv2ttxWSUX/SSZEyqcdyDDb+8="
decoded_bytes = base64.b64decode(b64_string)
decoded_string = decoded_bytes.decode('latin1')
print(decoded_string)