2014-11-26 3 views
2

먼저 유니 코드 문자를 입력하고 UTF-8로 인코딩 한 다음 다시 디코딩 해 보았습니다. 파이썬은 행복하게 원래 캐릭터를 되돌려줍니다. 인코딩 된 문자열을 살펴 보았습니다. b'\xe6\x88\x91'입니다. 나는 이것이 무엇인지 이해하지 못한다. 3 진수 숫자처럼 보인다.유니 코드를 파이썬에서 원래 문자로 변환하는 방법

그런 다음 조사를 해보니 CJK 세트가 4E00부터 시작한다는 것을 알았습니다. 이제이 캐릭터의 모습을 파이썬에 보여 주길 바랍니다. 어떻게해야합니까? 위와 같은 형식으로 4E00을 변환해야합니까?

+0

http://www.joelonsoftware.com/articles/Unicode.html –

답변

0

b'\xe6\x88\x91' 텍스트는 문자 我 인 유니 코드 코드 포인트 \u6211의 UTF-8 인코딩되는 바이트 표현이다. .decode('utf-8')이라는 유니 코드 문자열 이외의 다른 것으로 변환 할 필요가 없습니다.

+0

4E00을 원래 캐릭터로 변환하려면 어떻게해야합니까? 4E00이 무엇인지 모르겠다. 여기에있다. http://stackoverflow.com/questions/1366068/whats-the-complete-range-for-chinese-characters-in-unicode – Xufeng

+0

"4E00"을 문자는 완전히 다른 질문입니다. –

+0

@Xufeng : 당신의 진짜 문제는 무엇입니까? ''\ u4E00 ''은 중국어«one»의 유니 코드 표현입니다. 이 문자를 디스크에 기록하려면 인코딩해야합니다 (예 : UTF-8 :'u '\ u4E00'.encode ('utf-8 ')'->'b'\ xe4 \ xb8 \ x80 ''. – Daniel

0

당신은 UTF-8 인코딩을 사용하여 디코딩해야합니다 : 당신은 유니 코드 문자열로 (b'...'이 무엇이다) 바이트를 전환하고이를 디코딩하여

>>> print(b'\xe6\x88\x91'.decode('UTF-8')) 
我 

을하고 어떻게 당신이 할 수 있어요 텍스트를 표시하거나 사용하십시오.

+0

질문에 제공된 텍스트는 utf-8로 인코딩되지 않으며 Windows-1252로 인코딩됩니다. Chardet에서 감지 기능을 사용하면이 기능이 표시됩니다. –

+0

@DavidGreydanus : 사용자가 이미 인코딩이 UTF-8이고 텍스트를 windows로 표시했음을 나타내는 경우가 많습니다. 1252는 유효한 텍스트를 반환하지 않는 것 같습니다. –

관련 문제