[파이썬] 문자열의 문자열 인코딩과 디코딩

컴퓨터에서 문자열은 바이트로 저장되고 처리됩니다. 따라서, 문자열을 다룰 때는 문자열을 바이트로 변환하는 인코딩과 바이트를 문자열로 변환하는 디코딩이 필요합니다. 이번 블로그 포스트에서는 Python에서 문자열의 문자열 인코딩과 디코딩에 대해 알아보겠습니다.

문자열을 바이트로 인코딩하기

Python에서 문자열을 바이트로 인코딩하려면, encode() 메서드를 사용합니다. 이 메서드는 문자열을 지정된 인코딩에 따라 바이트로 변환하여 반환합니다. 예를 들어, UTF-8 인코딩을 사용하여 문자열을 바이트로 변환하려면 다음과 같이 코드를 작성할 수 있습니다:

text = "안녕하세요"
bytes = text.encode("utf-8")
print(bytes)  # b'\xec\x95\x88\xeb\x85\x95\xed\x95\x98\xec\x84\xb8\xec\x9a\x94'

위 예제에서는 encode() 메서드를 사용하여 utf-8로 인코딩한 바이트를 bytes 변수에 저장합니다. print() 함수를 사용하여 인코딩된 바이트를 출력합니다.

바이트를 문자열로 디코딩하기

바이트를 문자열로 디코딩하려면, decode() 메서드를 사용합니다. 이 메서드는 바이트를 지정된 인코딩에 따라 문자열로 변환하여 반환합니다. 예를 들어, UTF-8 인코딩을 사용하여 바이트를 문자열로 변환하려면 다음과 같이 코드를 작성할 수 있습니다:

bytes = b'\xec\x95\x88\xeb\x85\x95\xed\x95\x98\xec\x84\xb8\xec\x9a\x94'
text = bytes.decode("utf-8")
print(text)  # 안녕하세요

위 예제에서는 decode() 메서드를 사용하여 utf-8로 디코딩한 문자열을 text 변수에 저장합니다. print() 함수를 사용하여 디코딩된 문자열을 출력합니다.

인코딩과 디코딩 방식 설정하기

Python에서 문자열의 인코딩과 디코딩 방식은 str.encode()bytes.decode() 메서드의 매개변수를 통해 설정할 수 있습니다. 인코딩 시 encode() 메서드의 encoding 매개변수를 사용하고, 디코딩 시 decode() 메서드의 encoding 매개변수를 사용합니다. 인코딩과 디코딩 방식은 주로 UTF-8, UTF-16, ASCII 등이 사용됩니다.

예를 들어, 문자열을 UTF-16으로 인코딩하고 디코딩하는 코드는 다음과 같습니다:

text = "안녕하세요"
bytes = text.encode("utf-16")
decoded_text = bytes.decode("utf-16")
print(decoded_text)  # 안녕하세요

위 예제에서는 UTF-16으로 인코딩 및 디코딩하여 문자열을 변환하였습니다.

결론

Python에서 문자열의 문자열 인코딩과 디코딩은 encode()decode() 메서드를 사용하여 간단하게 수행할 수 있습니다. 인코딩은 문자열을 바이트로 변환하고, 디코딩은 바이트를 문자열로 변환하는 과정입니다. 적절한 인코딩과 디코딩 방식을 선택하여 문자열 처리에 유의하십시오.

더 많은 정보를 원하시면 Python 공식 문서를 확인해보시기 바랍니다.