我正在使用Python-GTK,我想在GTK条目中使用permille字符 - 看起来像‰o / oo。 GTK使用Unicode,或者更确切地说是UTF-8。
我实际做的是以这种方式从XML读取字符串:
self.xdb = ElementTree.parse("myfile.xml")
xmap = self.xdb.getiterator(tag="map")
for x in xmap:
unit = x.get("unit","")
XML文件以这种方式编写:
<map idx='398' unit='\u2030' />
然后我用这种方式转换字符串(在本例中为'\ u2030'):
unistring = ""
for s in unit:
unistring += unichr(ord(s))
然后我用转换后的字符串设置gtk-entry的文本:
entry.set_text(unistring)
但是条目中的文字显示'\ u2030'而不是预期的字符。
有谁知道如何处理这个问题?
感谢。
答案 0 :(得分:3)
<map idx='398' unit='\u2030' />
\u
转义用于Python字符串文字,而不是XML。 XML文件应该使用原始字符本身:
<map idx='398' unit='‰' />
如果您真的不能在编辑器中支持直接的非ASCII字符或其他任何产生该文件的字符,您可以使用字符引用:
<map idx='398' unit='‰' />