Python3 与 Python2 中的 Base64

Python3 与 Python2 中的 Base64

这是我的 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')

https://docs.python.org/3/library/stdtypes.html#textseq

答案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)

相关内容