0

我正在使用 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')转换为 Unicode:

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

然后我用转换后的字符串设置 gtk-entry 的文本:

entry.set_text(unistring)

但条目中的文本显示 '\u2030' 而不是预期的字符。

有谁知道如何处理这个?

谢谢。

4

1 回答 1

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

\u转义用于 Python 字符串文字,而不是 XML。XML 文件应使用原始字符本身:

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

如果您真的不能在编辑器中支持直接的非 ASCII 字符或生成文件的任何其他内容,则可以使用字符引用:

<map idx='398' unit='&#x2030;' />
于 2012-07-25T22:05:08.277 回答