Python问题,请求帮忙,这是怎么回事
发布网友
发布时间:2022-05-17 10:51
我来回答
共1个回答
热心网友
时间:2023-10-19 12:56
python 解析xml文件出现错误:xml.parsers.expat.ExpatError: unknown encoding: line 1, column 30
这是由于编码问题。
原因说明:
shell环境的 LANG=zh_CN.UTF-8
执行一个程序,生成了一个XML文件,在程序中将xml文件的编码设置成了GB2312,如“<?xml version="1.0" encoding="GB2312"?>”。
然后使用xml.etree.ElementTree解析这个xml文件,就出现了错误:“xml.parsers.expat.ExpatError: unknown encoding: line 1, column 30”。
实际上,由于LANG的作用,程序生成XML文件编码是UTF-8,并不是GB2312,所以解析时出现了错误。
(查看文本文件编码可以在vim下执行 :set fileencoding 来查看。)
解决办法:
将XML文件编码转换为GB2312,例如使用 iconv 命令,
或者
修改XML文件的编码为UTF-8,如:“<?xml version="1.0" encoding="UTF-8"?>”