Найти - Пользователи
Полная версия: lxml, кодировки и Windows7
Начало » Python для новичков » lxml, кодировки и Windows7
1
Timo
Добрый день
пытаюсь выполнить xslt transform при помощи библиотеки lxml. Проблемы уже при парсинге исходного xml файла

(OS Windows7 x64, Python 2.7.2 x64, lxml-2.3.win-amd64-py2.7):
>>> f=open(r"d:/temp/test.xml", "r")
>>> buf=f.read()
>>> buf[:47]
'<?xml version="1.0" encoding="windows-1251"?>\n<'
>>> from lxml import etree
>>> root = etree.fromstring(buf)

Traceback (most recent call last):
File "<pyshell#7>", line 1, in <module>
root = etree.fromstring(buf)
File "lxml.etree.pyx", line 2743, in lxml.etree.fromstring (src/lxml/lxml.etree.c:52665)
File "parser.pxi", line 1573, in lxml.etree._parseMemoryDocument (src/lxml/lxml.etree.c:79932)
File "parser.pxi", line 1452, in lxml.etree._parseDoc (src/lxml/lxml.etree.c:78774)
File "parser.pxi", line 960, in lxml.etree._BaseParser._parseDoc (src/lxml/lxml.etree.c:75389)
File "parser.pxi", line 564, in lxml.etree._ParserContext._handleParseResultDoc (src/lxml/lxml.etree.c:71739)
File "parser.pxi", line 645, in lxml.etree._handleParseResult (src/lxml/lxml.etree.c:72614)
File "parser.pxi", line 585, in lxml.etree._raiseParseError (src/lxml/lxml.etree.c:71955)
XMLSyntaxError: Unsupported encoding windows-1251, line 1, column 42
>>>
причем тот же код под Xubuntu 11.04 x64 выплнятся на ура
что-делать-то?

PS тот же файлик, ручками преобразованный в UTF-8, парсится без ошибок
boltayka
“Unsupported encoding windows-1251”
Менять кодировку файла, что же ещё..
Timo
boltayka
“Unsupported encoding windows-1251”
Менять кодировку файла, что же ещё..
входные файлы не мои, в какой кодировке пришли - с такой и работаем

повторюсь:
тот же код под Xubuntu 11.04 x64 выплнятся на ура
т.е. библиотека lxml способна сама разобраться с кодировкой.
проблема вероятно в версии для windows x64
truporez
очевидно дело в сборке lxml, вариант в лоб - конвертить в utf-8 руками c правкой заголовков, а потом скармливать lxml.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB