Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mengapa json_encode() Gagal dengan Petikan Tunggal dalam Catatan

Mengapa json_encode() Gagal dengan Petikan Tunggal dalam Catatan

Linda Hamilton
Linda Hamiltonasal
2024-11-04 02:47:02482semak imbas

Why Does json_encode() Fail with Single Quotes in Post

Fungsi json_encode PHP: Menangani Kegagalan Petikan Tunggal

Masalah:

Apabila menggunakan json_encode () untuk menukar objek stdClass dengan petikan tunggal dalam tajuk siaran, JSON yang terhasil mengembalikan null untuk kunci itu. Ini mencadangkan isu dengan mengendalikan petikan tunggal.

Punca:

Isunya terletak pada pengekodan pangkalan data. Petikan tunggal berkemungkinan dikodkan dalam format bukan UTF-8, yang menyebabkan json_encode() gagal secara senyap. Untuk menyelesaikan masalah ini, pengekodan sambungan perlu ditetapkan sebelum melaksanakan pertanyaan pangkalan data.

Penyelesaian:

Kaedah yang sesuai untuk menetapkan pengekodan sambungan bergantung pada API yang digunakan :

  • Untuk API lama yang tidak digunakan lagi, hubungi mysql_set_charset("utf8").
  • Untuk mysqli, hubungi mysqli_set_charset("utf8").
  • Untuk PDO dalam PHP >= 5.3.6, tambah parameter charset pada rentetan sambungan. Untuk versi terdahulu, laksanakan SET NAMES utf8.

Pertimbangan Tambahan:

Menggunakan utf8_encode() pada semua teks boleh dipertimbangkan, tetapi ia mungkin tidak menghasilkan hasil yang betul untuk semua aksara bukan ascii. Untuk memastikan pengendalian yang tepat, adalah disyorkan untuk menggunakan UTF-8 sebagai pengekodan pelanggan.

Atas ialah kandungan terperinci Mengapa json_encode() Gagal dengan Petikan Tunggal dalam Catatan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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