Я пишу набор инструментов на 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) без успеха. Поскольку спецификация отсутствовала, я попытался написать ее, но безуспешно. Я также попытался заменить разрыв строки в Windows (CR / LF) на Unix (CR). Также без какого-либо успеха.
Также версия Python на работе - 2.7.1, на моем Ubuntu - 2.6.6, но не думаю, что моя проблема связана с тем, что: я без проблем обновил Python своего рабочего компьютера с 2.6 до 2.7 несколько недель назад .
Поскольку я здесь не эксперт, у меня заканчиваются идеи, есть подсказка?
Edit:
После дальнейшего исследования (у меня сейчас болит голова, я ненавижу проблемы, связанные с Unicode), похоже, что проблема была решена путем правильной установки системных переменных среды LANG, LC_ALL и LANGUAGE в (в моем случае) "fr_FR.utf-8". Я не понимаю, почему они не были поначалу и почему сейчас, это работает ...
Благодарю вас, ребята, за руку!