파이썬에서 문자열은 바이트 코드와 유니코드로 나뉜다.


파이썬 3에서,

바이트 코드의 타입 -> <class 'bytes'>

유니 코드의 타입 -> <type 'str'>



변환


바이트 코드는 euc-kr, UTF–8 등과 같이 특정 인코딩이 적용된 문자열을 말한다. 파이썬에서 유니코드는 어떤 특정 인코딩에 속하지 않는 유니버셜한 어떤 것을 나타낸다. (다른 언어에서 흔히 UTF–8을 유니코드로 일컫는 것과는 다름에 유의)

  • 유니코드 >>> 바이트 코드로 변환하기 위해서는 encode() 함수가 사용된다.

  • 바이트 코드 >>> 유니코드로 변환하기 위해서는 decode() 함수가 사용된다.

    bstr = str.encode("UTF–8") # 유니코드에서 UTF–8 바이트 코드로 변환 
    str = bstr.decode("UTF–8") # UTF–8 바이트 코드에서 유니코드로 변환


타입 확인

  • type() 함수를 사용하여 어떤 문자열이 유니코드인지 바이트 코드인지 알아낼 수 있다.
    print(type(bstr)) # 바이트 코드일 경우 
    -> <type 'bytes'> 
    
    print(type(str)) # 유니코드일 경우
    -> <type 'str'>


소스 코드 상에서 대입시,


파이썬 2에서는 기본적으로 바이트 코드이고 <type 'str'>로 표기되며, 이에 대비되는 유니코드가 있는 것과 달리,

파이썬 3에서는 기본적으로 유니코드이고 <type 'str'>로 표기된다.


참고


print 함수를 사용하여 바이트 코드를 출력할 경우, 앞에 b'가 붙는 것을 볼 수 있다.


테스트 환경 
- OS : Windows 7 
- Python 버전 : 3.6


,