這是由於編碼問題。
原因說明:
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"?>”