我正在用 python 编写一组工具来从交通模拟软件生成的一些 xml 文件中提取数据。由于生成的文件可能非常大,我使用 xml.parsers.expat 来解析它们。
问题是,当我在 Windows XP 机器上运行我的脚本时,它运行良好,但在家里,在 Ubuntu 10.10 上,在同一个文件上,我收到以下错误:
ExpatError: not well-formed (invalid token): line 1, column 0
该文件最初以 utf-8 编码,并且标签中声明的编码是 ascii,因此尝试将其更改为 utf-8(或 UTF8 或 utf8)但没有成功。由于没有 BOM,我尝试编写它,但仍然没有成功。我还尝试用Unix换行符(CR)替换Windows换行符(CR / LF)。也没有任何成功。
此外,python 的工作版本是 2.7.1,在我的 Ubuntu 机器上是 2.6.6,但不要认为我的问题与此有关:几周前我将工作计算机的 Python 从 2.6 升级到 2.7,没有遇到任何问题。
由于我不是这里的专家,所以我的想法不多了,有什么提示吗?
编辑:经过进一步调查(我现在很头疼,我讨厌与 Unicode 相关的麻烦),看起来问题已通过将系统环境变量 LANG、LC_ALL 和 LANGUAGE 正确设置为(在我的情况下)“fr_FR.utf-8”来解决. 我不明白为什么他们一开始没有,为什么现在,它起作用了......
我感谢你们的手!