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 数据被解释为拉丁语 1:

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

\u00f1后面带有波浪号的小拉丁文 n 的 unicode 代码点在哪里:ñ。

您的终端可能已配置为 Latin-1 显示;尝试从 UTF-8 解码:

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