2011-11-21 2 views
3

나는 중국 연구과에 얼마전 등록했으며, 나는 파이썬으로 플래시 카드 프로그램을 작성하는 것이 좋을 것이라고 생각했다. 플래시 카드 목록을 사전에 .txt 파일로 저장하고 있습니다. 지금까지 문제가 없습니다. utf-8로 인코딩 된 파일을 내 프로그램에로드하려고하면 실제 문제가 발생합니다. 내 코드의 발췌 : 인쇄 무엇python2.7 - 유니 코드로 가득한 .txt 파일에서 사전 읽기

{'character1':'男人'} 

실제로 분명히

{'character1': '\xe7\x94\xb7\xe7\x86\xb1'} 

일부 심각한 인코딩 문제가 :

import codecs 

f = codecs.open(('list.txt'),'r','utf-8') 
quiz_list = eval(f.read()) 

quizy = str(quiz_list).encode('utf-8') 

print quizy 

자, 예를 들어 List.txt 파일은 다음과 같이 구성하는 경우 여기, 그러나 나는 내 삶에 대해 이해할 수 없다. 여기서는이 발생한다. utf-8을 지원하는 터미널로 작업 중이므로 표준 cmd.exe는 아닙니다. 이것은 문제가 아닙니다. 중괄호 dict-bits가없는 일반 list.txt를 읽으면 문제없이 중국어 문자가 반환되므로 사전 부분을 제대로 처리하지 못하는 것 같습니다. 어떤 생각이라도 대단히 감사하겠습니다!

답변

3

...이 봐 :

>>> d = {1:'男人'} 
>>> d[1] 
'\xe7\x94\xb7\xe4\xba\xba' 
>>> print d[1] 
男人 

것은 또 다른 하나는 표현을 인쇄하는 유니 코드 문자열을 인쇄하는 것입니다.

+0

도 @ephemient 둘 다 감사드립니다! 나는 그것을 알아 냈다, 명백하게 나는 나의 연구를 조금 더 잘 했어야했다. 시간 내 줘서 고마워. – user1058744

2

str(quizy)repr(quizy['character1'])을 호출하여 문자열 값의 ASCII 표현을 생성합니다. 문자가 print quizy['character1']이라면 파이썬 문자열에서 문자 코드가 유니 코드임을 알 수 있습니다. 인코딩 아무 문제가 없습니다