2009-09-17 2 views
0

내 프로그램은 cPickle로 압축 된 파일에 파일 인덱스를 저장합니다. 영어 이외의 파일 이름이 있습니다. I는이PyQt의 인코딩 문제

print f [0] 

여기서 F [0]는 "\ XC2 \ xe8 \ xf1 \ xee \ xea \ xee \ xf1 \ 고정 된 \ xfb \ xe9 \ XE3 \ xee \ xe4"("Високосный 할 때 год "을 정상적인보기에서 사용), 러시아어로 적절한 방법으로 문자열을 인쇄합니다.

프로그램이 수동으로 QTreeView에 u'Високосный год '문자열을 추가하면 모든 것이 정상입니다. 프로그램이 QTreeView에 unpickled 파일에서 바로 ("\ XE3 \ xee \ xe4"등)이 문자열을두고 때

그러나, 그것은 그렇게된다 :

alt text http://img170.imageshack.us/img170/9226/encoding.png

해결하기 위해 어떤 방법이 있나요 그?

+0

답변에 대한 답변을 추가했습니다. –

답변

2

올바른 인코딩 ("cp1251"모양)을 사용하여 언 피클 링 된 문자열에 decode을 실행 했습니까? 그렇지 않은 경우 유니 코드 문자열을 GUI에 전달하는지 확인하기 위해이 작업을 수행해야합니다.

+0

cp1251, ascii 또는 다른 인코딩을 사용하여 문자열을 디코딩하려고 할 때 "UnicodeEncodeError : 'ascii'코덱이 0-9 위치의 문자를 인코딩 할 수 없습니다. 서수가 범위에 없습니다 (128)" –

+0

문자열에는 ASCII 문자가 아닌 문자가 포함되어 있으므로 ASCII는 사용하지 마십시오. 예를 들어 "\ xe3 \ xee \ xe4".decode ("cp1251")를 사용하면 "год"이 표시됩니다. 임의의 인코딩을 사용할 수 없습니다. "\ xe3 \ xee \ xe4"바이트를 유니 코드 "год"로 변환하는 올바른 인코딩이어야합니다. –