问题描述
利用Python的xml.etree.ElementTree模块解析被编码为GB2312的XML文件。源代码如下:
# 读入卫星信息文件
sats_info_tree = ET.parse(os.path.join(reports_dir, "Satellite.xml"))
但是报错:ValueError: multi-byte encodings are not supported
这是编码无法解析的问题。
尝试
本人尝试在ET.parse函数里面添加ET.XMLParser(encoding=“GB2312”)解决问题,但是添加之后依然报错如上。
解决
上网搜索一番。直接用“iso-8859-5”编码方式即可成功读取:
sats_info_tree = ET.parse(os.path.join(reports_dir,"Satellite.xml"),\
parser=ET.XMLParser(encoding="iso-8859-5"))
具体原因目前尚不知晓