2015-08-24 3 views
0

У меня есть XML-файл с некоторыми немецкими умляутами. Моя цель - прочитать в файле и сохранить результаты в базе данных. Для тестирования я получил два разных файла. Первый - согласно чарту UTF-8-SIG другой UTF-8.Разбор UTF-8 XML-файлов с Python

предварительной обработки данных осуществляется с помощью unicode(field[0]) после чтения файла с LXML

разборе первый файл работает отлично, но обработка других приводит к ошибке кодирования: UnicodeEncodeError: «ASCII» кодек не может кодировать символы в позиция: порядковый номер не в диапазоне (128)

Например, такая строка может быть u'Zubeh \ xf6r '(print(field[0]).

Использование print (field[0].encode("utf-8")) результатов в правой строке, но тип str вместо unicode

+0

Взгляните на этот вопрос: http://stackoverflow.com/questions/28852321/python-unicodedecodeerror-when-writing-german-letters – RafaelC

+0

спасибо. Я обновил вопрос – jwacalex

ответ

0

Попробуйте

from lxml import etree 
parser=etree.HTMLParser(encoding='utf-8') 

при чтении данных с LXML.

+0

кодировка верна, но она по-прежнему «str» как тип вместо «unicode» – jwacalex

+0

Когда вы кодируете строку Unicode, вы получите «str». Что вы пытаетесь сделать точно, если вы разместите какой-то код, я могу помочь вам лучше. – barlaso

+0

Я пытаюсь получить данные из xml-файла и хранить его в базе данных utf8 с помощью django-orm mapper. – jwacalex

Смежные вопросы