smo*_*ock 10 python xml tostring utf-8
我正在使用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')
Run Code Online (Sandbox Code Playgroud)
在一天结束时,xml看起来像:
<?xml version='1.0' encoding='UTF-8'?>
<tag>Würth Elektronik Midcom</tag>
Run Code Online (Sandbox Code Playgroud)
看起来tostring忽略了编码参数,并将'ü'编码成其他字符编码('ü'是有效的utf-8编码,我很确定).
任何关于我做错的建议都将不胜感激.
Joh*_*kin 19
你正在对文本进行两次编码.试试这个:
import xml.etree.cElementTree as etree
elem = etree.Element('tag')
elem.text = u"Würth Elektronik Midcom"
xml = etree.tostring(elem,encoding='UTF-8')
Run Code Online (Sandbox Code Playgroud)
etree.tostring(elem, encoding=str)
会返回,但在 Python 3 中str不会返回binary
unicode您还可以通过将函数作为编码(或str在 Py3 中)或名称“unicode”传递来序列化为 Unicode 字符串,而无需声明。这会将返回值从字节字符串更改为未编码的 unicode 字符串。