Bagaimana untuk Mengekodkan Aksara Bukan ASCII dalam JSON dengan UTF-8 Menggunakan `json_encode` PHP?

Linda Hamilton
Lepaskan: 2024-10-27 00:15:02
asal
148 orang telah melayarinya

How to Encode Non-ASCII Characters in JSON with UTF-8 Using PHP's `json_encode`?

Cara Mengembalikan PHP json_encode dengan Pengekodan UTF-8 Daripada Unicode

Apabila menggunakan fungsi json_encode PHP, secara lalai, aksara bukan ASCII dikodkan dalam format Unicode. Ini menghasilkan tindak balas JSON dengan jujukan melarikan diri seperti "u00e1" dan bukannya aksara yang dikodkan UTF-8 seperti "á".

Ambil contoh ini:

<code class="php">$arr = array('a' => 'á');
echo json_encode($arr);</code>
Salin selepas log masuk

Outputnya ialah:

<code class="json">{"a":"\u00e1"}</code>
Salin selepas log masuk

Untuk menyelesaikan isu ini dan mengembalikan respons JSON dengan aksara yang dikodkan UTF-8, anda boleh menggunakan pendekatan berikut:

PHP 5.4 :

Dari PHP 5.4 dan seterusnya, json_encode menyediakan pilihan JSON_UNESCAPED_UNICODE. Dengan menetapkan pilihan ini, aksara bukan ASCII akan dikodkan UTF-8 biasa tanpa urutan melarikan diri.

<code class="php">echo json_encode($arr, JSON_UNESCAPED_UNICODE);</code>
Salin selepas log masuk

Versi PHP Lama:

Untuk versi sebelum PHP 5.4, ​​anda boleh melaksanakan pengekod JSON anda sendiri yang mengetepikan pengekodan aksara bukan ASCII. Sebagai alternatif, anda boleh menggunakan pengekod JSON Pear dan mengalih keluar baris 349 hingga 433 daripada fungsi pengekodan.

Sila ambil perhatian bahawa perbezaan antara {"a":"u00e1"} dan {"a":"á"} adalah semata-mata bagaimana ia ditulis dalam sintaks JSON. Kedua-dua perwakilan akan dinyahkodkan kepada nilai Unikod yang sama oleh penyahkod JSON.

Atas ialah kandungan terperinci Bagaimana untuk Mengekodkan Aksara Bukan ASCII dalam JSON dengan UTF-8 Menggunakan `json_encode` 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!