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);