python 3.2.3 xml.etree.cElementTree unicode字符无法正常工作

时间:2013-01-27 23:02:08

标签: python xml urllib elementtree

我偶然发现了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/>

我是如何从'ñ'到'ñ'的?

我在这里错过了什么吗?

1 个答案:

答案 0 :(得分:3)

您看到UTF-8数据被解释为Latin 1:

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

其中\u00f1是拉丁语后面的n的unicode代码点,带有代字号:ñ。

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

print(str(tag, 'utf8'))
相关问题