UnicodeDecodeError:'utf8'编解码器无法解码字节

时间:2013-08-27 14:08:13

标签: python utf-8 character-encoding escaping elementtree

我正在解析一个“iso-8859-15”编码的xml文件。

像'苏黎世','Aktienrückk'这样的词汇被转换为“ä”等。

我尝试了这些建议:

p = ElementTree.fromstring(u'<p>found "\u62c9\u67cf \u591a\u516c \u56ed"</p>'.encode('utf8'))
>>> p.text
u'found "\u62c9\u67cf \u591a\u516c \u56ed"'
>>> print p.text

但我收到UnicodeDecodeError: 'ascii' codec can't decode byte

等错误

即使这样也无济于事

content = unicode(mystring.strip(codecs.BOM_UTF8), 'utf-8')

我在Stack Overflow上尝试了很多建议,但我找不到自己的方式。

我需要将解析后的内容写回具有相同字符集的html文件,例如'ü'

1 个答案:

答案 0 :(得分:1)

试试这个:

from xml.etree import ElementTree
p = ElementTree.fromstring(u'<p>found "\u62c9\u67cf \u591a\u516c \u56ed"</p>'.encode('utf8'))
print p.text.encode('utf8')

found "拉柏 多公 园"

对于你的例子:

# -*- coding: utf-8 -*-
from xml.etree import ElementTree
text = 'Aktienrückk'.decode('utf8')
print text.encode('utf8')

 Aktienrückk

不要忘记将# -*- coding: utf-8 -*-放在文件的开头。