Menyahkod Ralat XML Menggunakan SimpleXML_Load_String PHP
Dalam PHP, menggunakan fungsi simplexml_load_string untuk memproses respons XML kadangkala boleh membawa kepada ralat: "Input bukan UTF-8 yang betul, tunjukkan pengekodan!" Walaupun XML mengisytiharkan pengekodan UTF-8, ia mungkin mengandungi aksara bukan UTF-8, terutamanya apabila berurusan dengan bahasa seperti Sepanyol.
Membetulkan Ketakserasian Pengekodan
Kepada menangani isu ini, beberapa strategi boleh digunakan:
Praproses XML:
Mengesan Pengekodan Betul
Malangnya, PHP tidak menyediakan kaedah muktamad untuk mengesan pengekodan yang betul bagi fail XML secara automatik.
Pembetulan Separa
Sebagai penyelesaian sementara, fungsi berikut boleh digunakan untuk membetulkan sebahagian isu pengekodan Latin-1 biasa dalam UTF-8:
function fix_latin1_mangled_with_utf8_maybe_hopefully_most_of_the_time($str) { return preg_replace_callback('#[\xA1-\xFF](?![\x80-\xBF]{2,})#', 'utf8_encode_callback', $str); } function utf8_encode_callback($m) { return utf8_encode($m[0]); }
Perlu diingat bahawa pembetulan ini tidak menyeluruh dan mungkin tidak menyelesaikan semua percanggahan pengekodan.
Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Ralat \'Input is not proper UTF-8\' dalam SimpleXML_Load_String PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!