我正在尝试使用libxml2保存utf8编码的html,它工作正常,但非ascii字符保存为Г
。用于保存文件的代码:
htmlSaveFileEnc("modified.html", docPtr, "utf8");
如何防止这种情况并将其另存为
Г
utf8字符?
答案 0 :(得分:1)
作为解决方法使用htmlDocContentDumpOutput()
函数。将文档内容转储到char缓冲区并将缓冲区写入文件。
//htmlSaveFileEnc("modified.html", docPtr, "utf8");
xmlOutputBufferPtr out = xmlAllocOutputBuffer(NULL);
if (out) {
htmlDocContentDumpOutput(out, docPtr, "utf8");
const xmlChar *buffer = xmlBufferContent((xmlBuffer *) out->buffer);
// write buffer to file
FILE *file = fopen("modified.html", "w");
fputs((char *) buffer, file);
fclose(file);
xmlOutputBufferClose(out);
}