Я хочу разобрать в C ++ простые сообщения о состоянии от веб-службы, фрагменты XML без атрибута кодирования.
<message xmlns="http://violation.importer.xyz.de/xsd">
Der Import-Datensatz mit der Bezeichung="blabla" und der Id=68809 wurde erfolgreich importiert.
</message>
Кажется, они соответствуют ISO-8859-1.Можно ли установить парсер на эту кодировку?API сбивает меня с толку.
Вот мой код, xml находится в char * it (кстати, итератор)
xmlNodePtr root_element_ptr;
xmlDocPtr xmldoc_ptr;
xmldoc_ptr = xmlReadMemory(*it, strlen(*it), "it.xml", NULL, 0);
root_element_ptr = xmlDocGetRootElement(xmldoc_ptr);
xmlNodePtr msgnode = root_element_ptr->xmlChildrenNode;
xmlChar *message = xmlNodeListGetString(xmldoc_ptr, msgnode, 1);
response_msg += *message;
response_msg += " / ";
xmlCleanupParser();
xmlFreeDoc(xmldoc_ptr);
это работает, но segfaults на символе Umlaut и в моем журналея вижу
it.xml:1: parser error : Input is not proper UTF-8, indicate encoding !
Bytes: 0xE4 0x72 0x7A 0x74
так что из этого мне нужно использовать?http://xmlsoft.org/html/libxml-encoding.html