Mengapakah `json_encode()` mengembalikan nilai nol untuk sifat dengan petikan tunggal?

Susan Sarandon
Lepaskan: 2024-11-02 00:04:29
asal
635 orang telah melayarinya

Why is `json_encode()` returning null values for properties with single quotes?

Kegagalan Pengekodan JSON: Menyelesaikan Percanggahan dengan Petikan Tunggal

Pembangun kerap menghadapi kegagalan senyap apabila cuba mengekod objek menggunakan fungsi json_encode() PHP. Dalam konteks ini, pengguna menghadapi isu apabila pengekodan objek stdClass menghasilkan nilai nol untuk sifat yang mengandungi petikan tunggal.

Analisis

Setelah memeriksa isu itu, ia adalah mendapati bahawa punca asas adalah ketidakupayaan json_encode() untuk mengendalikan aksara di luar julat ASCII dengan betul. Watak petikan tunggal, yang diwakili sebagai x92 dalam longgokan hex, amat bermasalah.

Penyelesaian

Untuk menyelesaikan isu ini, adalah penting untuk memastikan data itu dikodkan dikodkan dengan betul dalam UTF-8. Ini boleh dicapai dengan menetapkan pengekodan sambungan MySQL dengan sewajarnya, bergantung pada API yang digunakan:

  • API Lama (Ditamatkan): mysql_set_charset("utf8")
  • mysqli: mysqli_set_charset("utf8")
  • PDO: Tambahkan parameter charset pada rentetan sambungan atau jalankan SET NAMES utf8 jika menggunakan PHP 5.3.6 atau lebih awal .

Pendekatan Alternatif

Penyelesaian alternatif boleh melibatkan penggunaan utf8_decode() untuk menukar teks kepada format yang dikodkan dengan betul. Walau bagaimanapun, ini mungkin tidak selalu menghasilkan hasil yang diingini, kerana ia mengandaikan bahawa teks dikodkan dalam ISO-8859-1.

Atas ialah kandungan terperinci Mengapakah `json_encode()` mengembalikan nilai nol untuk sifat dengan petikan tunggal?. 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