это моя строка 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. Но ничего не работает. Какой лучший подход здесь для преобразования base64 в обычную строку в python3.
решение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)