Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimanakah anda mengendalikan aksara Unicode dalam PHP apabila menyahkod dan mengekod data JSON?

Bagaimanakah anda mengendalikan aksara Unicode dalam PHP apabila menyahkod dan mengekod data JSON?

Barbara Streisand
Barbara Streisandasal
2024-11-03 13:26:02591semak imbas

How do you handle Unicode characters in PHP when decoding and encoding JSON data?

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!

Kenyataan:
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