파이썬에서는 문자열을 텍스트 형태와 바이트 형태로 표현할 수 있다.가끔 사용하는 모듈이 바이트 형태의 문자열을 입력으로 받는 경우가 있다. 즉, 문자열을 인코딩해서 넣어줘야하는 경우가 있다. 반대로 리턴받은 바이트 형태의 데이터를 문자열로 변환해야하는 경우도 있다.
문자열을 바이트로 변환 - bytes()
bytes() 함수를 이용해서 문자열을 바이트로 변환할 수 있다. 예를 들어
input_string = 'Hello, world'
print(input_string)
bytes_string = bytes(input_string, 'utf-8')
print(bytes_string)
문자열 데이터를 bytes() 함수를 이용해서 바이트 형태로 변환할 수 있다. 이 때, 어떤 인코딩 알고리즘을 사용할지 bytes() 함수의 인자로 같이 넣어주면 된다.
위 코드는 다음 결과를 출력한다.
Hello, world
b'Hello, world'
문자열을 바이트로 변환 - encode()
비슷하게 string.encode() 를 이용해서 바이트 형태로 변환할 수도 있다. encode() 함수의 인자로 변환할 인코딩을 전달하면된다.
input_string = 'Hello, world'
print(input_string)
bytes_string = input_string.encode('utf-8')
print(bytes_string)
bytes() 함수와 동일한 결과를 출력한다.
바이트를 문자열로 변환 - decode()
encode()를 이용해서 문자열을 바이트로 변환했다면 반대로 decode()를 이용해서 바이트를 문자열로 변환할 수 있다.
input_string = 'Hello, world'
bytes_string = input_string.encode('utf-8')
out_string = bytes_string.decode('utf-8')
print(out_string)
바이트를 문자열로 변환 - str()
아니면 str()을 이용해서 바이트를 문자열로 바꿀 수도 있다.
input_string = 'Hello, world'
bytes_string = input_string.encode('utf-8')
out_string = str(bytes_string, 'utf-8')
print(out_string)
댓글