0

在使用 libxml 解析一些 html 文件时,函数 xmlParseFile() 返回代码包含非 UTF-8 字符 如何将库的默认字符集修改为 ISO-8859-1?有没有其他方法可以解决这个问题?

PS:整个开发都是基于libxml,在大多数情况下都可以工作,所以我不能切换到另一个库。

4

1 回答 1

1

用于 XML 数据的编码必须在 XML 的序言中指定。如果未指定编码,W3 的 XML 规范规定必须改为使用 UTF-8。

为什么要使用 XML 解析器来解析 HTML 数据?libxml 有一个独立于其 XML 解析器的 HTML 解析器。查看 htmlParseFile() 和相关函数。由于 HTML 不是 XML,因此不会出现用于指示数据编码的 XML 序言。不过,HTML 确实有一个<meta>可用的标签,可以在标签内使用<head>。libxml 的 HTML 解析器会查找该标记来确定编码,如果没有直接显式传递给 htmlParseFile()。

于 2009-08-14T21:10:36.373 回答