Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Menyelesaikan \'Input tidak sesuai UTF-8, tunjukkan pengekodan !\' Ralat Menggunakan PHP SimpleXML?
Mengendalikan Ralat Pengekodan dengan SimpleXML
"Input bukan UTF-8 yang betul, tunjukkan pengekodan !" ralat timbul semasa memproses data XML menggunakan fungsi simplexml_load_string PHP. Ini menunjukkan bahawa kandungan XML tidak dikodkan dengan betul dalam UTF-8.
Mengesan Pengekodan Salah
Punca ralat ini mungkin adalah ketidakpadanan pengekodan antara XML kandungan dan persekitaran PHP. Untuk menentukan pengekodan yang betul:
Pra-Memproses XML
Untuk menyelesaikan isu ini, pertimbangkan kaedah berikut:
Pembetulan Separa Menggunakan Panggilan Balik
Sebagai langkah sementara, anda boleh menggunakan fungsi berikut untuk membaiki beberapa jujukan UTF-8 yang rosak:
<code class="php">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]); }</code>
Penyelesaian Kekal
Pendekatan terbaik ialah membetulkan pengekodan pada sumber. Sampaikan isu ini kepada pembekal data dan minta mereka mengekod kandungan XML dalam UTF-8 yang betul.
Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan 'Input tidak sesuai UTF-8, tunjukkan pengekodan !' Ralat Menggunakan PHP SimpleXML?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!