質問

Python 2.6.2のxml.etree.cElementTreeを使用してxmlドキュメントを作成しています:

import xml.etree.cElementTree as etree
elem = etree.Element('tag')
elem.text = (u"Würth Elektronik Midcom").encode('utf-8')
xml = etree.tostring(elem,encoding='UTF-8')

一日の終わりには、xmlは次のようになります。

<?xml version='1.0' encoding='UTF-8'?>
<tag>W&#195;&#188;rth Elektronik Midcom</tag>

tostringはエンコードパラメーターを無視し、「ü」を他の文字エンコードにエンコードしたように見えます(「ü」は有効なutf-8エンコードであると確信しています)。

間違ったことについてのアドバイスは大歓迎です。

役に立ちましたか?

解決

テキストを2回エンコードしています。これを試してください:

import xml.etree.cElementTree as etree
elem = etree.Element('tag')
elem.text = u"Würth Elektronik Midcom"
xml = etree.tostring(elem,encoding='UTF-8')

他のヒント

etree.tostring(elem、encoding = str)

Python 3では str を返しますが、 binary は返しません

  

次の方法で、宣言せずにUnicode文字列にシリアル化することもできます。            unicode 関数をエンコード(またはPy3では str )として渡す、           または「unicode」という名前。これにより、戻り値がバイトから変更されます           文字列をエンコードされていないUnicode文字列に変換します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top