Python 3. ElementTree. кодировка XML

ситуация такая: скрипту через стандартный ввод прилетает XML в кодировке отличной от UTF-8. Я вычитываю XML и отдаю его парсеру:

tree = ET.XML(xml_data)

Как задать кодировку данных XML?

P.S. Имеется в виду задать кодировку парсеру или чтоб он сам ее взял из заголовка XML

1 ответ

В python 3 все строки хранятся по умолчанию в юникоде. Если xml_data - строка (тип), то закодировать её в массив байт в кодировке utf-8 можно так - xml_data.encode('utf-8'). Если же это массив байт в какой-то кодировке, то раскодировать и на выходе получить строку в юникоде можно так - xml_data.decode('coding').

licensed under cc by-sa 3.0 with attribution.