PHP DOMDocument loadHTML出现乱码的解决方法

DOMDocument::loadHTML默认编码是ISO-8859-1,所

以我们需要做编码声明:

$dom->loadHTML(mb_convert_encoding($profile, 'HTML-ENTITIES', 'UTF-8')); 

完整测试代码:

$profile = '<div><p>イリノイ州シカゴにて、アイルランド系の家庭に、9</p></div>';
$dom = new DOMDocument();
$dom->loadHTML(mb_convert_encoding($profile, 'HTML-ENTITIES', 'UTF-8'));
echo $dom->saveHTML($dom->getElementsByTagName('div')->item(0));

另一种方法是在loadHTML的字符前加上编码声明:

$dom->loadHTML('<?xml encoding="utf-8" ?>' . $profile);

作者:Julian @ 恒馨博客
本文地址:https://towait.com/blog/php-domdocument-loadhtml-not-encoding-utf-8-correctly/

添加新评论

文章状态:已收录~