libxml2 htmlSaveFileEnc 将 utf8 字符保存为 Γ

libxml2 htmlSaveFileEnc saves utf8 chars as Г

我正在尝试使用 libxml2 保存 utf8 编码 html,它工作正常,但非 ascii 字符保存为 Г。用于保存文件的代码:

htmlSaveFileEnc("modified.html", docPtr, "utf8");

如何防止这种情况并将其保存为

Г

utf8 字符?

作为变通方法,使用 htmlDocContentDumpOutput() 函数。将文档内容转储到字符缓冲区并将缓冲区写入文件。

//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);
}