Base64 in Python3 vs. Python2

Base64 in Python3 vs. Python2

dies ist mein Base64-String „lFKiKF2o+W/vvLqddOdv2ttxWSUX/SSZEyqcdyDDb+8=“.

In Python2 funktioniert der folgende Code

print("lFKiKF2o+W/vvLqddOdv2ttxWSUX/SSZEyqcdyDDb+8=".decode('base64', 'strict'))

während in Python3, wo es str.decode('base64', 'strict') nicht gibt, nicht verfügbar ist. Ich habe versucht, dasselbe in Python3 wie unten zu tun

b64EncodeStr4 = "lFKiKF2o+W/vvLqddOdv2ttxWSUX/SSZEyqcdyDDb+8="
print(len(b64EncodeStr4))
decodedByte = base64.b64decode(bytes(b64EncodeStr4, 'ascii'))
print(decodedByte)
decodeStr = decodedByte.decode('ascii', 'strict')
print(decodeStr)

Ich habe auch andere Kodierungen wie UTF-8, UTF-16 und UTF-32 ausprobiert. Aber nichts funktioniert. Was ist hier der beste Ansatz, um Base64 in Python3 in einen regulären String umzuwandeln?

Antwort1

decodeStr = decodedByte.decode('ascii', 'ignore')

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

Antwort2

Verwenden Sie in Python3 einfach base64.b64decode. (Vergessen Sie nicht, das Base64-Modul zu importieren.)

FürBeispiel:

import base64

b64_string = "lFKiKF2o+W/vvLqddOdv2ttxWSUX/SSZEyqcdyDDb+8="
decoded_bytes = base64.b64decode(b64_string)
decoded_string = decoded_bytes.decode('latin1')

print(decoded_string)

verwandte Informationen