Menyahkod dan Mengekodkan JSON dengan Aksara Unikod dalam PHP
Apabila bekerja dengan data JSON yang mengandungi aksara Unikod, adalah penting untuk mengekalkan integriti aksara semasa penyahkodan dan pengekodan. Dalam PHP, pengendalian aksara Unicode boleh menimbulkan beberapa cabaran.
Menyahkod JSON dengan Aksara Unikod
Secara lalai, fungsi json_decode() PHP menjangkakan rentetan JSON menjadi UTF-8 dikodkan. Jika aksara Unicode tidak dikodkan dalam UTF-8, ia tidak akan dinyahkod dengan betul. Untuk menyelesaikan masalah ini, gunakan utf8_decode() sebelum menyahkod rentetan JSON:
<code class="php">$json = '{"Tag":"Odómetro"}'; $decoded = json_decode(utf8_decode($json));</code>
Pengekodan JSON dengan Aksara Unikod
Selepas mengubah suai data JSON, anda perlu mengekod ia kembali ke rentetan JSON. Secara lalai, json_encode() melepaskan aksara Unicode untuk mematuhi piawaian JSON. Untuk mengelakkan aksara Unicode melarikan diri, gunakan bendera JSON_UNESCAPED_UNICODE:
<code class="php">$encoded = json_encode($decoded, JSON_UNESCAPED_UNICODE);</code>
Aksara Unikod Dikodkan Tidak Terlepas
Jika anda perlu menyahkod aksara Unikod yang dikodkan, anda boleh menggunakan html_entiti_entiti () fungsi:
<code class="php">$unescaped = html_entity_decode($encoded);</code>
Versi PHP
Perhatikan bahawa bendera JSON_UNESCAPED_UNICODE hanya tersedia dalam PHP versi 5.4 dan lebih baru. Untuk versi terdahulu, anda boleh menggunakan ungkapan biasa untuk mencari dan melepaskan aksara Unikod:
<code class="php">$regex = '/\\u([0-9a-fA-F]{4})/'; $unescaped = preg_replace($regex, '&#x\1;', $encoded);</code>
Atas ialah kandungan terperinci Bagaimanakah anda mengendalikan aksara Unicode dalam PHP apabila menyahkod dan mengekod data JSON?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!