【PHP】DOMDocument で発生する文字化けの対策方法
【PHP】DOMDocument で発生する文字化けの対策方法
PHP DOMDocument を利用した際に発生する文字化けの対策方法です。
文字化けコード
$domDocument = new DOMDocument();
$domDocument->loadHTML($html);
原因
loadHtml は渡された文字列を ISO-8859-1 で解析するため。
PHP: DOMDocument::loadHTML - Manual
文字化け対策
文字化け対策は2種類あります。
# HTMLにエンコードをかける
$domDocument->loadHTML(mb_convert_encoding($html, 'HTML-ENTITIES', 'UTF-8'));
# HTMLにエンコードの指定を付与
$domDocument->loadHTML('<?xml encoding="utf-8" ?>' . $html);