PHP DOMDocument Bergelut dengan Pengekodan UTF-8 (☆)
Menghadapi kesukaran dengan PHP DOMDocument mengendalikan aksara UTF-8? Pelayan web, fail dan tetapan anda mungkin dikonfigurasikan untuk UTF-8, tetapi DOMDocument masih bermasalah. Kami akan meneroka isu tersebut dan menyediakan penyelesaian untuk memastikan tafsiran UTF-8 yang betul.
Punca Isu:
DOMDocument::loadHTML() mengharapkan HTML rentetan, biasanya dikodkan dalam ISO-8859-1 mengikut spesifikasi HTML. Walau bagaimanapun, rentetan yang dikodkan UTF-8, seperti rentetan anda, tidak serasi dengan jangkaan ini.
Penyelesaian 1: Tukar kepada Entiti HTML
Untuk menyelesaikan ketidakserasian ini, tukar semua aksara yang melebihi nilai Unicode 127 (h7F) kepada entiti HTML. Fungsi mb_convert_encoding dengan pengekodan sasaran HTML-ENTITIES boleh menyelesaikan tugas ini:
<code class="php">$us_ascii = mb_convert_encoding($utf_8, 'HTML-ENTITIES', 'UTF-8');</code>
Penyelesaian 2: Tambah Tag Meta HTML
Sebagai alternatif, anda boleh membayangkan pengekodan dengan menambah teg yang menyatakan set aksara:
<code class="php">$dom = new DomDocument(); $dom->loadHTML('<meta http-equiv="content-type" content="text/html; charset=utf-8">'.$html);</code>
Teg ini diletakkan secara automatik dalam
Pastikan Pengekodan Tepat
Akhir sekali, sahkan bahawa rentetan input anda dikodkan dengan tulen dalam UTF-8. Pengekodan bercampur boleh hadir dalam beberapa input, merumitkan proses penukaran. Gunakan ungkapan biasa untuk melakukan penggantian rentetan yang disasarkan jika perlu.
Atas ialah kandungan terperinci Mengapakah DOMDocument PHP Mengalami Masalah Mengendalikan Aksara UTF-8?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!