Mengapa json_encode() Gagal Mengekodkan Aksara Beraksen Daripada Pangkalan Data MySQL dengan Pengekodan Latin1?

Barbara Streisand
Lepaskan: 2024-10-30 11:55:02
asal
335 orang telah melayarinya

Why Does json_encode() Fail To Encode Accented Characters From a MySQL Database with Latin1 Encoding?

Perjuangan Pengekodan JSON dengan Aksara UTF-8 dalam MySQL

Apabila cuba mendapatkan semula aksara beraksen daripada pangkalan data dengan pengekodan latin1_swedish_ci dan mengekodnya ke dalam JSON menggunakan json_encode(), hasilnya mungkin tidak dijangka. Hasil yang dimaksudkan, seperti "Abord â Plouffe," diubah menjadi "null", menjadikan JSON yang dikodkan tidak sah.

Untuk menyelesaikan isu ini, adalah perlu untuk mengekodkan nilai yang diambil ke dalam UTF-8 secara eksplisit sebelum menggunakan json_encode(). Ini memastikan bahawa output JSON mengandungi aksara UTF-8 yang betul dan mengesahkan dengan sewajarnya. Berikut ialah cara untuk melaksanakan penyelesaian ini:

<code class="php">// Initialize an empty array for the encoded result set
$rows = array();

// Iterate over the PHPMyAdmin result set
while ($row = mysql_fetch_assoc($result)) {
  // Apply UTF-8 encoding to each row value
  $rows[] = array_map('utf8_encode', $row);
}

// Output the encoded $rows
echo json_encode($rows);</code>
Salin selepas log masuk

Dalam kod yang diubah suai ini, kami menggunakan fungsi array_map untuk menggunakan utf8_encode pada setiap elemen setiap baris dalam set hasil. Ini memastikan bahawa semua aksara dikodkan dengan betul ke dalam UTF-8 sebelum json_encode dilaksanakan. Akibatnya, output JSON yang terhasil akan mencerminkan aksara yang dimaksudkan dengan tepat, mengekalkan aksara beraksen seperti yang dikehendaki.

Atas ialah kandungan terperinci Mengapa json_encode() Gagal Mengekodkan Aksara Beraksen Daripada Pangkalan Data MySQL dengan Pengekodan Latin1?. 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!