Bagaimana untuk Mengekod dan Menyahkod JSON dengan Aksara Unicode dalam PHP?

Barbara Streisand
Lepaskan: 2024-10-31 05:01:30
asal
901 orang telah melayarinya

How to Encode and Decode JSON with Unicode Characters in PHP?

Pengekodan dan Penyahkodan JSON dengan Aksara Unikod dalam PHP

Dalam PHP, berurusan dengan rentetan JSON yang mengandungi aksara unikod boleh menimbulkan cabaran. Artikel ini menangani isu yang biasa dihadapi semasa menyahkod dan mengekod rentetan sedemikian.

Menyahkod Aksara Unikod

Untuk menyahkod JSON dengan aksara unikod, anda mungkin menghadapi masalah jika aksara tersebut tidak dikodkan dengan betul. Spesifikasi JSON membenarkan mana-mana aksara unikod kecuali petikan berganda, garis miring ke belakang dan aksara kawalan. Walau bagaimanapun, aksara unikod tertentu mungkin tidak menyahkod dengan betul dalam Python atau bahasa pengaturcaraan lain.

Pengekodan Aksara Unikod

Apabila mengekodkan JSON dengan aksara unikod, hasilnya mungkin dikodkan dengan urutan unicode yang terlepas, yang sah mengikut spesifikasi JSON. Walau bagaimanapun, anda mungkin ingin mengekalkan aksara unicode asal dalam bentuk unescaped mereka.

Menggunakan unescaped_unicode Option

PHP 5.4 memperkenalkan pilihan JSON_UNESCAPED_UNICODE untuk json_encode(), yang menyediakan keupayaan untuk mengekod aksara unicode tanpa melepaskannya. Walau bagaimanapun, jika anda menggunakan PHP 5.3, pilihan ini tidak tersedia.

Penyelesaian Alternatif untuk PHP 5.3

Untuk PHP 5.3, anda boleh menggunakan berasaskan ungkapan biasa pendekatan untuk melepaskan diri daripada urutan unikod yang dikodkan. Salah satu cara untuk melakukannya ialah:

<code class="php">$pattern = '/"\\u([0-9a-fA-F]{4})"/';
$replaced = preg_replace($pattern, '"\u"', $encodedJson);</code>
Salin selepas log masuk

Ungkapan biasa ini mencari jujukan unikod yang terlepas dalam bentuk "uXXXX" dan menggantikannya dengan aksara unikod yang tidak dilepaskan.

Contoh Kod

Untuk mengekod rentetan JSON dengan aksara unikod dan melepaskannya semasa penyahkodan, anda boleh menggunakan kod berikut:

<code class="php">$data = ['Tag' => 'Odómetro'];
$encodedJson = json_encode($data, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
$decodedData = json_decode($encodedJson, true);

print_r($decodedData); // Output: [Tag] => Odómetro</code>
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Mengekod dan Menyahkod JSON dengan Aksara Unicode 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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!