2012-07-25 3 views
0

파이썬 -GTK를 사용 중이고 GTK 항목에서 ‰/oo처럼 보이는 permille 문자를 사용하고 싶습니다. GTK는 유니 코드 또는보다 정확하게 UTF-8을 사용합니다.PyGTK에서 XML 파일에서 추출한 비 ASCII 문자를 사용하는 방법은 무엇입니까?

<map idx='398' unit='\u2030' /> 

그럼 내가 (이 경우 문자열 변환 ': XML 파일이 방법을 기록

self.xdb = ElementTree.parse("myfile.xml") 
xmap = self.xdb.getiterator(tag="map") 
for x in xmap: 
    unit = x.get("unit","") 

: 나는 실제로 XML에서 이런 식으로 문자열을 읽어 무엇을

\ 유니 코드 u2030 ')이 방법 : 이후

unistring = "" 
    for s in unit: 
     unistring += unichr(ord(s)) 

그리고 나는 공동과 GTK-항목의 텍스트를 설정 nverted string :

entry.set_text(unistring) 

그러나 항목의 텍스트에 예상 문자 대신 '\ u2030'이 표시됩니다.

아무도 이것을 처리하는 방법을 알고 있습니까?

감사합니다.

+1

** "\ x89"또는 "\ u137"중 하나도 U + 2030 PER MILLE SIGN ... –

+0

고마워, 변경했습니다. 그러나 항목에 문자열 \ u2030이 여전히 표시됩니다 ... –

+2

' '\ u2030' '은 6 자입니다. 1 대신'u'\ u2030''을 사용하셨습니까? –

답변

3
<map idx='398' unit='\u2030' /> 

이스케이프는 XML이 아닌 파이썬 문자열 리터럴에서 사용됩니다. XML 파일은 원시 문자 자체 사용해야합니다

<map idx='398' unit='&#x2030;' /> 
: 당신이 정말로 당신의 편집기 나 파일을 생산하고 어떤 다른 직접 ASCII가 아닌 문자를 사용할 수없는 경우

<map idx='398' unit='‰' /> 

을, 당신은 문자 참조를 사용할 수 있습니다

관련 문제