您正在使用 DOMDocument 解析 HTML,但编码似乎丢失当您加载 HTML 时。 HTML 中的日文字符被替换为乱码,而直接通过 echo 输出 HTML 字符串时却能正确显示。
DOMDocument 假定输入字符串为 ISO-8859-1默认情况下(HTTP/1.1 默认字符集)。在解析 UTF-8 字符串时,这种不正确的假设会导致误解,从而导致出现乱码。
为了确保 DOMDocument 使用正确的编码加载 HTML 字符串,您有以下几种选择:
这是一个使用元字符集声明的示例:
$profile = '<p>イリノイ州シカゴにて、アイルランド系の家庭に、9</p>'; $dom = new DOMDocument(); // Add meta charset declaration $contentType = '<meta http-equiv="Content-Type" content="text/html; charset=utf-8">'; $dom->loadHTML($contentType . $profile); echo $dom->saveHTML();
这将使用正确的 UTF-8 编码加载 HTML 字符串,保留原有的日语字符。
以上是为什么我的 PHP DOMDocument loadHTML 函数无法正确处理 UTF-8 编码?的详细内容。更多信息请关注PHP中文网其他相关文章!