Bagaimana untuk Mengekodkan JSON dalam UTF-8 Tanpa Melarikan Diri Aksara Unikod dalam PHP?

Linda Hamilton
Lepaskan: 2024-10-31 03:42:30
asal
242 orang telah melayarinya

How to Encode JSON in UTF-8 Without Escaping Unicode Characters in PHP?

Cara Mengekod JSON dalam UTF-8 Tanpa Melarikan Diri Aksara Unikod

Dalam PHP, fungsi json_encode() menukar nilai kepada rentetan JSON dengan lalai, bagaimanapun, ia melepaskan aksara Unicode ke dalam perwakilan titik kod Unicode mereka. Ini boleh menjadi tidak diingini dalam senario tertentu di mana output memerlukan pengekodan UTF-8 dan bukannya pengekodan Unikod.

Pertimbangkan contoh berikut:

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

Output yang dijangkakan ialah "a": "á ", tetapi keputusan sebenar ialah {"a":"u00e1"}. Ini kerana fungsi json_encode() telah mengekodkan aksara 'á' ke dalam perwakilan titik kod Unikodnya, iaitu "u00e1".

Penyelesaian:

Semasa di sana tiada pilihan terbina dalam dalam versi PHP sebelum 5.4 untuk melumpuhkan Unicode melarikan diri dalam json_encode(), terdapat beberapa penyelesaian untuk mencapai ini:

  1. Gulung Pengekod JSON Anda Sendiri: Buat pengekod JSON tersuai yang tidak mengekod aksara bukan ASCII.
  2. Gunakan Pengekod JSON Pear: Gunakan pengekod JSON Pear dan alih keluar baris 349 hingga 433, yang bertanggungjawab untuk melarikan diri Unikod .
  3. Gunakan PHP 5.4 : Dalam PHP 5.4 dan versi yang lebih baru, fungsi json_encode() menyediakan pilihan JSON_UNESCAPED_UNICODE yang membenarkan output biasa tanpa Unicode melarikan diri. Berikut ialah contoh menggunakan pilihan ini:
<code class="php"><?php
header('Content-Type: application/json');
$arr = ['a' => 'á'];
echo json_encode($arr, JSON_UNESCAPED_UNICODE);
?></code>
Salin selepas log masuk

Ini akan mengeluarkan rentetan JSON yang diingini: "a": "á".

Atas ialah kandungan terperinci Bagaimana untuk Mengekodkan JSON dalam UTF-8 Tanpa Melarikan Diri Aksara Unikod 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!