Rumah > pembangunan bahagian belakang > tutorial php > 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
Lepaskan: 2024-11-03 13:26:02
asal
644 orang telah melayarinya

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

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

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

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

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!

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