为什么 DOM 会更改编码?
$string = file_get_contents('http://example.com');
if ('UTF-8' === mb_detect_encoding($string)) {
$dom = new DOMDocument();
// hack to preserve UTF-8 characters
$dom->loadHTML('<?xml encoding="UTF-8">' . $string);
$dom->preserveWhiteSpace = false;
$dom->encoding = 'UTF-8';
$body = $dom->getElementsByTagName('body');
echo htmlspecialchars($body->item(0)->nodeValue);
}
这会将所有 UTF-8 字符更改为 Å、3/4、¤ 和其他垃圾。有没有其他方法可以保留 UTF-8 字符?
不要发布答案告诉我要确保我将其输出为UTF-8,我确保我是。
提前致谢 :)