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