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#テキストシーケンス

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

関連情報