在将此用于部分HTML时要小心。这只会采用至少包含HTML元素和BODY元素的完整HTML文档。如果您正在处理部分HTML,并且您填写了周围缺少的元素,并且没有在META元素中指定字符编码,那么它将被视为ISO-8859-1,并将破坏UTF-8字符串。示例
<?php
$body = getHtmlBody();
$doc = new DOMDocument();
$doc->loadHtml("<html><body>".$body."</body></html>");
// $doc 将把您的 HTML 视为 ISO-8859-1。
// 这是正确的,但如果您的源代码是 UTF-8,则可能不是您想要的
?>
<?php
$body = getHtmlBody();
$doc = new DOMDocument();
$doc->loadHtml("<html><head><meta charset=\"UTF-8\"><meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"></head><body>".$body."</body></html>");
// $doc 将正确地将您的 HTML 视为 UTF-8。
?>