私は、トラフィックシミュレーションソフトウェアによって生成されたいくつかのxmlファイルからデータを抽出するための一連のツールをPythonで作成しています。結果のファイルは非常に大きくなる可能性があるため、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がなかったので、私はそれを書き込もうとしましたが、それでも成功しませんでした。また、Windowsの改行(CR / LF)をUnixの改行(CR)に置き換えようとしましたが、成功しませんでした。
また、動作中のpythonのバージョンは2.7.1で、Ubuntuボックスでは2.6.6ですが、私の問題が関連しているとは思わないでください。数週間前に、作業用コンピューターのPythonを2.6から2.7に問題なくアップグレードしました。
私はここでは専門家ではないので、アイデアが不足しています、何かヒントはありますか?
編集:さらに調査したところ(今は頭痛がして、Unicode関連の問題は嫌いです)、システム環境変数LANG、LC_ALL、およびLANGUAGEを(私の場合は)「fr_FR.utf-8」に適切に設定することで問題が解決したようです。 。なぜ最初はそうでなかったのか、なぜ今はうまくいくのかわかりません...
手に感謝します!