python 的 etree.tostring 的编码问题
我正在使用 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ürth Elektronik Midcom</tag>
看起来 tostring 忽略了编码参数并将 'ü' 编码为其他一些字符编码 (' ü' 是一个有效的 utf-8 编码,我相当确定)。
任何关于我做错了什么的建议将不胜感激。
I'm using python 2.6.2's xml.etree.cElementTree to create an xml document:
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')
At the end of the day, xml looks like:
<?xml version='1.0' encoding='UTF-8'?>
<tag>Würth Elektronik Midcom</tag>
It looks like tostring ignored the encoding parameter and encoded 'ü' into some other character encoding ('ü' is a valid utf-8 encoding, I'm fairly sure).
Any advice as to what I'm doing wrong would be greatly appreciated.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您对文本进行了两次编码。试试这个:
You're encoding the text twice. Try this:
etree.tostring(elem,encoding=str)
在 Python 3 中将返回
str
但不是binary
etree.tostring(elem, encoding=str)
will return
str
but notbinary
in Python 3