파이썬에서 문자열은 바이트 코드와 유니코드로 나뉜다.
유니코드 >>> 바이트 코드로 변환하기 위해서는 encode() 함수가 사용된다.
바이트 코드 >>> 유니코드로 변환하기 위해서는 decode() 함수가 사용된다.
str = ustr.encode("UTF–8") # 유니코드에서 UTF–8 바이트 코드로 변환 ustr = str.decode("UTF–8") # UTF–8 바이트 코드에서 유니코드로 변환
type() 함수를 사용하여 어떤 문자열이 유니코드인지 바이트 코드인지 알아낼 수 있다.
print type(str) # 바이트 코드일 경우 -> <type 'str'> print type(ustr) # 유니코드일 경우 -> <type 'unicode'>
소스 코드 상에서 대입시,
# -*- coding: utf-8 -*-
myStr = "가나다"
myStr의 타입 -> utf-8의 <type 'str'>
[2]
# -*- coding: cp949 -*-
myStr = "가나다"
myStr의 타입 -> cp949의 <type 'str'>
[3]
myStr = u"가나다"
myStr의 타입 -> <type 'unicode'>
'# -*- coding: ~' 을 붙이지 않을 경우, 시스템 로케일인 cp949의 <type 'str'>로 적용되어야 할 것 같은데, 실제 테스트 결과는 utf-8로 적용된다??
[참고] 이것은 파이썬 2.X 대에서 적용되는 내용이고, 파이썬 3.X 대에서는 방식이 약간 달라지게 되는데...
테스트 환경 - OS : Windows 7 - Python 버전 : 2.7
'1. 연구 모듈 > Python' 카테고리의 다른 글
[Python] 파이썬 3에서 문자열 처리 (0) | 2018.02.07 |
---|---|
[wxPython] 외부 프로그램의 표준 출력/에러를 표시하는 template (0) | 2017.05.13 |
[Python] HTML 파싱하기 (Beautiful Soup 모듈 사용) (0) | 2017.02.01 |
[Python] HTTP 요청하기 (requests 모듈 사용) (0) | 2016.12.29 |
[Python] HTTP 요청하기 (httplib 모듈 사용) (0) | 2016.12.13 |