Rumah > pangkalan data > tutorial mysql > Bagaimana Mengendalikan Aksara UTF-8 Apabila Mengekodkan Array PHP ke JSON?

Bagaimana Mengendalikan Aksara UTF-8 Apabila Mengekodkan Array PHP ke JSON?

Barbara Streisand
Lepaskan: 2024-11-01 13:50:54
asal
1085 orang telah melayarinya

How to Handle UTF-8 Characters When Encoding a PHP Array to JSON?

Pertempuran Pengekodan JSON dengan Aksara UTF-8 dalam PHP

Dalam bidang pengendalian pangkalan data dalam PHP, seseorang mungkin menghadapi cabaran apabila bekerja dengan aksara beraksen dan pengekodan UTF-8. Pertimbangkan senario di mana anda ingin mendapatkan semula baris daripada jadual yang mengandungi aksara beraksen dan pengekodan lajur dikonfigurasikan sebagai latin1_swedish_ci.

Memahami Masalah

Percubaan untuk dipaparkan baris yang diambil menggunakan utf8_encode() pada mulanya nampaknya berfungsi, tetapi pengekodan JSON berikutnya menggunakan json_encode() menghasilkan nilai nol untuk medan yang terjejas. Ini timbul kerana json_encode() mungkin tidak mengendalikan aksara UTF-8 yang dikodkan menggunakan mysql_fetch_assoc().

Penyelesaian untuk Memelihara UTF-8

Untuk menyelesaikan isu ini, gunakan pendekatan berikut:

  1. Buat tatasusunan kosong bernama $rows untuk menyimpan hasil yang dikodkan.
  2. Lelaran ke atas set hasil pangkalan data menggunakan while($row = mysql_fetch_assoc($result)) .
  3. Untuk setiap baris, gunakan utf8_encode() pada setiap elemen menggunakan $rows[] = array_map('utf8_encode', $row). Langkah ini menukar aksara beraksen kepada UTF-8 dengan betul.
  4. Akhir sekali, kodkan tatasusunan $rows kepada JSON menggunakan echo json_encode($rows).

Dengan melaksanakan kaedah ini, JSON pengekodan akan mewakili aksara UTF-8 dengan betul, mengekalkan aksara beraksen dan menghalang nilai nol untuk medan yang terjejas.

Atas ialah kandungan terperinci Bagaimana Mengendalikan Aksara UTF-8 Apabila Mengekodkan Array PHP ke JSON?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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