Rumah > pembangunan bahagian belakang > tutorial php > Mengapakah `json_encode` Mengembalikan Rentetan Kosong dan Bagaimana Saya Boleh Membetulkan Isu Pengekodan UTF-8?

Mengapakah `json_encode` Mengembalikan Rentetan Kosong dan Bagaimana Saya Boleh Membetulkan Isu Pengekodan UTF-8?

DDD
Lepaskan: 2024-12-03 19:25:14
asal
856 orang telah melayarinya

Why Does `json_encode` Return an Empty String, and How Can I Fix UTF-8 Encoding Issues?

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;
}
Salin selepas log masuk

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!

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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan