Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Mengekod dan Menyahkod JSON dengan Aksara Unicode dalam PHP?

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

Barbara Streisand
Barbara Streisandasal
2024-10-31 05:01:30988semak imbas

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>

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>

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!

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