Rumah > Artikel > pangkalan data > Mengapa json_encode() Kadang-kadang Kehilangan Aksara UTF-8 Apabila Pengekodan Baris Pangkalan Data dalam PHP?
Isu Pengekodan Aksara UTF-8 dengan json_encode()
Dalam PHP, pengendalian pengekodan aksara UTF-8 boleh menjadi mencabar, terutamanya apabila bekerja dengan pangkalan data dan pengekodan JSON. Satu isu biasa timbul apabila cuba mengekod JSON tatasusunan yang mengandungi baris pangkalan data yang mempunyai aksara beraksen. Walaupun dokumentasi yang mendakwa json_encode() menyokong UTF-8, sesetengah aksara mungkin hilang atau muncul sebagai nilai nol semasa proses pengekodan.
Untuk menyelesaikan isu ini, pendekatan alternatif diperlukan. Daripada mengekodkan tatasusunan baris secara langsung, buat tatasusunan kosong dan isikannya dengan nilai yang dikodkan baris demi baris. Berikut ialah contoh:
<code class="php">// Create an empty array for the encoded resultset $rows = array(); // Loop over the db resultset and put encoded values into $rows while($row = mysql_fetch_assoc($result)) { $rows[] = array_map('utf8_encode', $row); } // Output $rows echo json_encode($rows);</code>
Dalam kod yang dikemas kini ini:
Pendekatan ini memastikan semua aksara UTF-8 dikodkan dengan betul sebelum pengekodan JSON terakhir, menyelesaikan isu di mana beberapa aksara telah hilang atau muncul sebagai batal dalam kod asal .
Atas ialah kandungan terperinci Mengapa json_encode() Kadang-kadang Kehilangan Aksara UTF-8 Apabila Pengekodan Baris Pangkalan Data dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!