PHP DOMDocument loadHTML が UTF-8 を正しくエンコードしていない
問題:
HTML 解析時PHP の DOMDocument::loadHTML()、UTF-8 文字を使用正しく解釈されず、出力が歪められます。
原因:
DOMDocument は、デフォルトで入力文字列が ISO-8859-1 エンコーディングであると想定します。ただし、HTML5 では UTF-8 が一般的に使用されます。エンコードを指定せずに UTF-8 文字列をロードすると、DOMDocument が文字列を誤って解釈します。
解決策:
この問題に対処するには、入力に正しいエンコードを指定する必要があります。弦。いくつかのオプションがあります:
例:
このコードは、mb_encode_numericentity() 関数の使用方法を示しています:$profile = '<p>イリノイ州シカゴにて、アイルランド系の家庭に</p>'; $dom = new DOMDocument(); $dom->loadHTML(mb_encode_numericentity($profile, [0x80, 0x10FFFF, 0, ~0], 'UTF-8')); echo $dom->saveHTML();
以上がPHP DOMDocument::loadHTML() が UTF-8 を正しく処理しないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。