Irregularity Pengekodan JSON dengan json_encode PHP
Isu ini timbul apabila cuba mengekod data jadual pangkalan data ke dalam JSON menggunakan fungsi json_encode() PHP. Menariknya, tingkah laku berbeza berdasarkan data input.
Pertanyaan seperti "SELECT FROM negara WHERE continent_code='AS'" berjaya mengembalikan nilai JSON, manakala yang lain, seperti "SELECT FROM negara WHERE continent_code='EU'", gagal berbuat demikian. Yang menghairankan, kod benua seperti 'EU', 'NA' dan 'AF' berkelakuan berbeza daripada yang lain.
Setelah meneliti kod tersebut, kami menyedari bahawa isu itu terletak dalam fungsi json_encode().
<code class="php">while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) { $orders[] = array( 'CountryCode' => $row['code'], 'CountryName' => $row['name'] ); } echo json_encode($orders);</code>
Data berjaya diisi ke dalam tatasusunan $orders sebelum dihantar ke json_encode(). Walau bagaimanapun, fungsi tersebut gagal mengekodnya untuk kod benua tertentu.
Kunci untuk menyelesaikan isu ini terletak pada memastikan pengekodan UTF-8 di seluruh aplikasi web anda.
Dengan mematuhi garis panduan ini, anda boleh menyelesaikan ketidakteraturan dalam pengekodan JSON dan memastikan tingkah laku yang konsisten kod anda untuk semua data input.
Atas ialah kandungan terperinci Mengapakah Fungsi Pengekodan Fungsi json_encode PHP Tidak Konsisten Berdasarkan Kod Benua?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!