0

なぜそれが起こるのか説明できないというPythonのこの特定の問題に遭遇しました。サーバーからこのxmlスニペットがあるとしましょう:

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<!--Get the Object if known to the system-->
<object>
  <ID>1</ID>
  <name>object1</name>
  <tags type="languages">English,Español</tags>
</object>

次のコードを使用して、サーバーから取得します。

temp = urllib.request.urlopen("http://someurl.com")
tree = elementTree.parse(temp)
node = tree.getroot()

「Español」の「ñ」のような特殊文字を取得するまで、すべて正常に機能します。これらの文字を正しく印刷する代わりに、HTML コードで次のようになります。

<b>tags</b>: English,Español <br/>

'ñ' から 'ñ' への変換方法を教えてください。

ここで何か不足していますか?

4

1 に答える 1

3

UTF-8 データが Latin 1 として解釈されていることがわかります。

>>> '\u00f1'.encode('utf8').decode('latin1')
ñ

ここ\u00f1で、チルダ付きのラテン スモール レイター n の Unicode コードポイント: ñ.

あなたの端末はおそらく Latin-1 表示用に設定されています。UTF-8 からデコードしてみてください:

print(str(tag, 'utf8'))
于 2013-01-27T23:05:56.973 に答える