Rumah > pembangunan bahagian belakang > tutorial php > Bagaimana untuk Menyahkod Unicode Escape Sequences dalam PHP?

Bagaimana untuk Menyahkod Unicode Escape Sequences dalam PHP?

Patricia Arquette
Lepaskan: 2024-12-22 14:26:19
asal
368 orang telah melayarinya

How to Decode Unicode Escape Sequences in PHP?

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);
Salin selepas log masuk

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:

  • Menukar perwakilan heks titik kod Unikod (cth., "00ed") kepada rentetan binari menggunakan pek('H*').
  • Menyahkod rentetan binari ke dalam UTF-8 menggunakan mb_convert_encoding().

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);
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan