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エスケープは、XML ではなく、Python 文字列リテラルで使用されます。XML ファイルは生の文字自体を使用する必要があります。

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

エディターやその他のファイルを生成するもので非 ASCII 文字を直接サポートできない場合は、文字参照を使用できます。

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