Menyahkod Unicode Escape Sequences kepada UTF-8 Aksara dalam PHP
Soalan: Adakah terdapat fungsi terbina dalam dalam PHP yang boleh menyahkod urutan pelarian Unicode seperti "u00ed" ke dalam aksara UTF-8 yang sepadan, seperti "í"?
Jawapan: Walaupun PHP tidak menyediakan fungsi langsung untuk tugasan ini, anda boleh menggunakan gabungan ekspresi biasa dan fungsi pengekodan aksara untuk mencapai hasil yang diingini:
$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);
Kod ini menggunakan ungkapan biasa untuk memadankan urutan melarikan diri Unikod dan menggantikannya dengan aksara UTF-8 yang sepadan menggunakan mb_convert_encoding().
Sekiranya jujukan melarikan diri adalah dalam format UTF-16:
$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);
Kod yang diubah suai ini menganggap bahawa jujukan melarikan diri adalah dikodkan UTF-16 , yang biasa digunakan dalam bahasa pengaturcaraan tertentu dan tatatanda JSON.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyahkod Unicode Escape Sequences ke UTF-8 dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!