Anda menggunakan DOMDocument untuk menghuraikan HTML, tetapi pengekodan nampaknya hilang apabila anda memuatkan HTML. Aksara Jepun dalam HTML digantikan dengan teks bercelaru, sementara ia dipaparkan dengan betul apabila mengeluarkan rentetan HTML secara terus melalui gema.
DOMDocument menganggap rentetan input berada dalam ISO-8859-1 (set aksara lalai HTTP/1.1) secara lalai. Apabila menghuraikan rentetan UTF-8, andaian yang salah ini mengakibatkan salah tafsir, membawa kepada aksara bercelaru.
Untuk memastikan DOMDocument memuatkan rentetan HTML dengan pengekodan yang betul, anda mempunyai beberapa pilihan:
Berikut ialah contoh menggunakan pengisytiharan meta charset:
$profile = '<p>イリノイ州シカゴにて、アイルランド系の家庭に、9</p>'; $dom = new DOMDocument(); // Add meta charset declaration $contentType = '<meta http-equiv="Content-Type" content="text/html; charset=utf-8">'; $dom->loadHTML($contentType . $profile); echo $dom->saveHTML();
Ini akan memuatkan rentetan HTML dengan pengekodan UTF-8 yang betul , mengekalkan aksara Jepun asal.
Atas ialah kandungan terperinci Mengapakah fungsi PHP DOMDocument loadHTML saya tidak mengendalikan pengekodan UTF-8 dengan betul?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!