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)

相關內容