Python 문자열 encode() decode()

Python String encode()

Python 문자열 encode() 함수는 지정된 인코딩을 사용하여 문자열을 인코딩하는 데 사용됩니다. 이 함수는 bytes 객체를 반환합니다. 인코딩을 제공하지 않으면 기본적으로 “utf-8” 인코딩이 사용됩니다.

Python Bytes decode()

Python bytes decode() 함수는 바이트를 문자열 객체로 변환하는 데 사용됩니다. 이 두 함수 모두 인코딩/디코딩 오류에 대한 처리 방식을 지정할 수 있게 해줍니다. 기본값은 ‘strict’으로, 인코딩 오류가 UnicodeEncodeError를 발생시킵니다. ‘ignore’, ‘replace’, ‘xmlcharrefreplace’와 같은 다른 값들도 가능합니다. 파이썬 문자열 encode() decode() 함수의 간단한 예제를 살펴보겠습니다.

str_original = 'Hello'

bytes_encoded = str_original.encode(encoding='utf-8')
print(type(bytes_encoded))

str_decoded = bytes_encoded.decode()
print(type(str_decoded))

print('Encoded bytes =', bytes_encoded)
print('Decoded String =', str_decoded)
print('str_original equals str_decoded =', str_original == str_decoded)

출력:

<class 'bytes'>
<class 'str'>
Encoded bytes = b'Hello'
Decoded String = Hello
str_original equals str_decoded = True

위의 예제는 인코딩의 사용을 명확하게 보여주지 않습니다. 사용자로부터 입력을 받아 인코딩하는 다른 예제를 살펴보겠습니다. 사용자가 입력한 문자열에는 특수 문자가 포함될 것입니다.

str_original = input('Please enter string data:\n')

bytes_encoded = str_original.encode()

str_decoded = bytes_encoded.decode()

print('Encoded bytes =', bytes_encoded)
print('Decoded String =', str_decoded)
print('str_original equals str_decoded =', str_original == str_decoded)

출력:

Please enter string data:
aåb∫cçd∂e´´´ƒg©1¡
Encoded bytes = b'a\xc3\xa5b\xe2\x88\xabc\xc3\xa7d\xe2\x88\x82e\xc2\xb4\xc2\xb4\xc2\xb4\xc6\x92g\xc2\xa91\xc2\xa1'
Decoded String = aåb∫cçd∂e´´´ƒg©1¡
str_original equals str_decoded = True

당신은 우리의 GitHub 저장소에서 완전한 Python 스크립트와 더 많은 Python 예제를 확인할 수 있습니다.

참조: str.encode() API 문서, bytes.decode() API 문서

Source:
https://www.digitalocean.com/community/tutorials/python-string-encode-decode