PHP DOMDocument loadHTML出现乱码的解决方法
# PHP
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/