Menyahkod Unicode Escape Sequences dalam PHP
Pengekodan aksara boleh menjadi topik yang mengelirukan, terutamanya apabila bekerja dengan urutan melarikan diri Unicode seperti "u00ed". Jika anda tertanya-tanya cara untuk menyahkod jujukan ini kepada aksara UTF-8 yang betul dalam PHP, artikel ini akan menyediakan penyelesaian yang mudah.
Menggunakan preg_replace_callback
Untuk menyahkod Unicode urutan melarikan diri dalam PHP, anda boleh menggunakan fungsi preg_replace_callback(). Berikut ialah coretan kod yang menunjukkan penggunaannya:
$str = preg_replace_callback('/\\u([0-9a-fA-F]{4})/', function ($match) { return mb_convert_encoding(pack('H*', $match[1]), 'UTF-8', 'UCS-2BE'); }, $str);
Corak ungkapan biasa ini sepadan dengan semua jujukan melarikan diri Unikod dan menggunakan fungsi panggil balik untuk menyahkod setiap padanan. Fungsi panggil balik melakukan perkara berikut:
Mengendalikan Pengekodan Unikod Berbeza
Jika data Unicode anda berdasarkan UTF-16 dan bukannya UCS-2, yang biasa dalam C /C , Java dan JSON, anda boleh menggunakan versi panggil balik yang sedikit berbeza fungsi:
$str = preg_replace_callback('/\\u([0-9a-fA-F]{4})/', function ($match) { return mb_convert_encoding(pack('H*', $match[1]), 'UTF-8', 'UTF-16BE'); }, $str);
Perubahan ini memastikan fungsi penyahkodan mengendalikan data yang dikodkan UTF-16 dengan betul.
Atas ialah kandungan terperinci Bagaimana untuk Menyahkod Unicode Escape Sequences dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!