2011-03-03 6 views
6

파이썬에서는 유니 코드에서 바이트 문자열로 인코딩 할 유니 코드 문자열에 encode 메서드가 있습니다. 그 반대로 문자열에 decode 메서드가 있습니다.파이썬 문자열 인코딩 방법

하지만 무엇을 encode 문자열로 혼란 스럽습니까?

+0

이 프리젠 테이션 '파이썬에서의 유니 코드, 완전히 신비화 된 것'살펴보기 http://farmdev.com/talks/unicode/ – rubayeet

+0

나는 그것을 보았다. 그것은 내 질문을 설명하지 않습니다. – amit

답변

10

비 텍스트 코덱에 유용합니다.

>>> 'Hello, world!'.encode('hex') 
'48656c6c6f2c20776f726c6421' 
>>> 'Hello, world!'.encode('base64') 
'SGVsbG8sIHdvcmxkIQ==\n' 
>>> 'Hello, world!'.encode('zlib') 
'x\x9c\xf3H\xcd\xc9\xc9\xd7Q(\xcf/\xcaIQ\x04\x00 ^\x04\x8a' 
+0

와우, 인코딩 된 문자열이 기본 인코딩과 호환되지 않는 경우에도 작동합니다. 즉, 먼저 문자열을 유니 코드로 디코딩하는 것은 아닙니다 ... – DzinX

+0

문자 인코딩 중 하나를 인코딩하면 유니 코드로 디코딩 될 것입니다. 이상한. – amit

5

먼저 기본 인코딩을 사용하여 유니 코드로 디코딩 한 다음 다시 바이트 문자열로 인코딩합니다. 여기

>>> import sys 
>>> sys.getdefaultencoding() 
'ascii' 
>>> sys.setdefaultencoding('latin-1') 
>>> '\xc4'.encode('utf-8') 
'\xc3\x84' 

, '\xc4'는 라틴 1 인 및 '\xc3\x84'는 위해 UTF-8이다.

-4

멋진 파이썬 문서를 직접 읽고 싶지 않으십니까?

http://docs.python.org/release/2.5.2/lib/string-methods.html

"" "인코딩 ([인코딩 [오류]) 문자열의 인코딩 된 버전을 반환. 기본 인코딩은 현재 기본 문자열 인코딩된다. 오류가 다른 에러 처리 방식을 설정하도록 제공 될 수있다 오류의 기본값은 인코딩 오류로 인해 UnicodeError가 발생한다는 것을 의미하는 'strict'입니다. 다른 값으로는 'ignore', 'replace', 'xmlcharrefreplace', 'backslashreplace'및 codecs.register_error를 통해 등록 된 다른 이름이 있습니다 .1 가능한 인코딩 목록을 보려면 4.8.3. 버전 2.0의 새로운 기능 버전 2.3에서 변경 : 'xmlcharrefreplace'및 'backslashreplace'및 기타 오류 처리 스키마가 추가되었습니다. "" "

+0

파이썬의 문서는 인코딩과 디코드가 어떻게 작동하는지, 그리고 암시 적 변환이 일어날 때를 설명하는 일이 부족합니다. 이 경우, 문서에 대한 간단한 포인터로는 충분하지 않습니다. – Triptych