【问题标题】:Parsing UTF-8 XML-Files with Python使用 Python 解析 UTF-8 XML 文件
【发布时间】:2015-11-18 11:50:07
【问题描述】:

我有一个包含一些德语变音符号的 XML 文件。我的目标是读取文件并将结果存储到数据库中。为了测试,我得到了两个不同的文件。第一个是根据chardet UTF-8-SIG,另一个是UTF-8

用lxml读取文件后由unicode(field[0])对数据进行预处理

解析第一个文件可以正常工作,但处理其他文件会导致编码错误:UnicodeEncodeError: 'ascii' codec can't encode characters in position: ordinal not in range(128)

例如这样的字符串可以是 u'Zubeh\xf6r' (print(field[0])。

使用print (field[0].encode("utf-8")) 得到正确的字符串,但类型是str 而不是unicode

【问题讨论】:

标签: python unicode lxml


【解决方案1】:

试试

from lxml import etree
parser=etree.HTMLParser(encoding='utf-8')

当你用 lxml 读取数据时。

【讨论】:

  • 编码是正确的,但它仍然是“str”而不是“unicode”
  • 当你“编码”一个 Unicode 字符串时,你会得到“str”。你到底想做什么,如果你发布一些代码,我可以更好地帮助你。
  • 我正在尝试从 xml 文件中获取数据并通过 django-orm 映射器将其存储到 utf8 数据库中。
猜你喜欢
  • 2013-07-14
  • 2020-01-20
  • 1970-01-01
  • 2012-11-07
  • 2017-01-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-21
相关资源
最近更新 更多