2013-07-29 4 views
1

У меня есть XML-файл с содержанием иврита для некоторых его атрибутов. я в питоне:Работа с Unicode в элементах xml python

parser = ET.XMLParser(encoding="utf-8") 
tree = ET.parse(fInput,parser) 
root = tree.getroot() 

и оттуда я могу перебираем Len (корень) объектов, и начать дело с ним с .text собственности. Однако для древнееврейских текстов я, например,

>>> elem[0].text 
u'\u05ea\u05d5\u05dd' 

Я хочу, чтобы преобразовать этот XML в функции вставки SQL, чтобы вставить его в свою базу данных. Как я могу правильно прочитать эти свойства, чтобы фактически иметь в руке иврит?

+0

Юникодский персонаж 05ea - [Еврейская буква Tav] (http://www.unicodemap.org/details/0x05EA/index.html), так что выглядит правильно. –

+0

Хорошо, думаю, я нашел свою проблему. Я не написал его правильно в файл. Могу ли я просто использовать s.encode ('UTF-8') по всему тексту, который я извлекаю из элементов? (например, они являются ивритскими текстами или нет) – buddy123

+0

Вы указываете кодировку для файла, и да, вы можете записать весь текст в один файл. Однако вам, возможно, придется знать проблемы направления (справа налево и текст слева направо). Программа, которую вы используете для просмотра файла, должна быть способна справиться с этим, или вы получите странные результаты. –

ответ

1

Unicode character 05ea is Hebrew letter Tav, или & # x05ea; так что выглядит так, как будто вы правильно читаете текст на иврите, кодированный UTF-8. Полная строка: "& # x05ea; & # x05d5; & # x05dd;". Все, что вам нужно сделать, это убедиться, что поле базы данных, в которое вы записываете это, настраивается как UTF-8 или UTF-16.