一大堆XML文件定义了错误的编码。它应该是utf-8但内容在所有地方都有拉丁字符1。解析这些内容的最佳方法是什么?
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
编辑:这与Adobe InDesign IDML文件一起发生,似乎“内容”文本有latin-1但其余部分可能是utf-8。我赞成使用utf -8进行正常解析,然后将Content中的Unicode文本块重新编码为utf-8,然后使用latin-1重新解析。真是一团糟。 ಠ_ಠ
答案 0 :(得分:2)
您可以在解析时覆盖XML中指定的编码:
class xml.etree.ElementTree.XMLParser(html=0, target=None, encoding=None)
Element
XML源数据的结构构建器, 基于expat解析器。 HTML是 预定义的HTML实体。这个标志是 当前不支持 实现。target
是目标 宾语。如果省略,则构建器使用 标准的一个实例 TreeBuilder类。编码1是 可选的。如果给定,则为该值 覆盖中指定的编码 XML文件。
答案 1 :(得分:1)
请勿尝试在解析期间处理编码问题,而是预先处理有问题的文件。