Python3과 Python2의 Base64

Python3과 Python2의 Base64

이것은 내 base64 문자열 "lFKiKF2o+W/vvLqddOdv2ttxWSUX/SSZEyqcdyDDb+8="입니다.

Python2에서는 다음 코드가 작동합니다.

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

반면에 str.decode('base64', 'strict') 가 없는 python3에서는 사용할 수 없습니다. 나는 아래와 같이 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)

관련 정보