파이썬에서 바이트 리터럴(b'...')을 일반 문자열(str)로 변환하려면 디코딩(decoding) 과정이 필요합니다. 가장 기본적인 방법은 bytes 객체가 기본 제공하는 decode() 메서드를 사용하는 것입니다.
decode() 메서드 사용 예제
>>> b"abcde".decode("utf-8")
'abcde'
decode() 메서드의 인자에는 바이트 데이터가 인코딩된 문자셋을 지정합니다. 위 예제에서는 가장 널리 쓰이는 UTF-8을 사용했으며, 인자를 생략할 경우 기본값으로 UTF-8이 적용됩니다.
chr() 함수를 이용한 변환
바이트 값이 ASCII 코드 범위 내에 있다면, 각 바이트를 chr() 함수로 매핑한 뒤 하나의 문자열로 조합하는 방법도 사용할 수 있습니다.
bytes = [112, 52, 52]
print("".join(map(chr, bytes)))
실행 결과
p44
다만 이 방식은 ASCII(0~127) 범위의 바이트에만 적합합니다. 한글처럼 여러 바이트로 표현되는 문자가 포함된 데이터는 반드시 decode('utf-8') 방식을 사용해야 올바르게 변환됩니다.