Pengekodan JSON dan Isu Aksara UTF-8
Menghadapi pemulangan rentetan kosong daripada json_encode mungkin menunjukkan masalah dengan pengekodan aksara UTF-8. Ini amat ketara jika mb_detect_encoding mengembalikan ASCII manakala json_encode gagal.
Penyelesaian:
Selepas penyiasatan menyeluruh, punca isu dikenal pasti sebagai pengekodan UTF-8 yang tidak betul . Untuk menyelesaikan masalah ini, anda boleh menggunakan fungsi rekursif berikut:
function utf8ize($d) { if (is_array($d)) { foreach ($d as $k => $v) { $d[$k] = utf8ize($v); } } else if (is_string ($d)) { return utf8_encode($d); } return $d; }
Fungsi ini berulang melalui tatasusunan, menukar semua rentetan kepada UTF-8 menggunakan utf8_encode. Dengan menggunakan json_encode pada output utf8ize, anda boleh memastikan bahawa semua aksara dikodkan dengan betul untuk siri JSON.
Nota: utf8_encode menganggap input adalah dalam pengekodan ISO-8859-1. Jika pengekodan tidak pasti, pertimbangkan untuk menggunakan iconv atau mb_convert_encoding untuk mekanisme penukaran yang lebih mantap.
Atas ialah kandungan terperinci Mengapakah `json_encode` Mengembalikan Rentetan Kosong dan Bagaimana Saya Boleh Membetulkan Isu Pengekodan UTF-8?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!