Я пытаюсь записать XML-файлы с помощью libxml2 в ISO-8859-1.
Но из документации видно, что для каждого создаваемого мной текстового узла мне придется конвертировать в UTF-8, который является внутренней кодировкой libxml. Затем при вызове xmlSaveFormatFileEnc () libxml преобразуется в целевую кодировку и добавляет атрибут кодировки в документ.
Это предположение верно?
На данный момент мой код выглядит примерно так:
xmlNode *root_element = NULL, *node4 = NULL;
xmlDoc *doc = NULL;</p>
<pre><code>doc = xmlNewDoc(BAD_CAST XML_DEFAULT_VERSION);
root_element = xmlNewDocNode(doc, NULL, BAD_CAST("root"),
NULL);
char * input_str = getLatin1Data();
isolat1ToUTF8(utf8_str, &file_size, input_str, &inlen);
node4 = xmlNewCDataBlock(doc, BAD_CAST list_content, xmlStrlen(BAD_CAST utf8_str));
xmlAddChild(root_element, node4);
xmlSaveFormatFileEnc("test_file.xml", doc, "UTF-8", 1);
xmlFreeDoc(doc);