Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Kaedah untuk menyelesaikan masalah data JSON Cina yang kacau dalam PHP

Kaedah untuk menyelesaikan masalah data JSON Cina yang kacau dalam PHP

PHPz
PHPzasal
2024-03-09 08:48:03458semak imbas

Kaedah untuk menyelesaikan masalah data JSON Cina yang kacau dalam PHP

Kaedah untuk menyelesaikan masalah Cina yang bercelaru bagi data JSON dalam PHP

Apabila membangun menggunakan PHP, kami sering menghadapi situasi mengeluarkan data dalam format JSON. Walau bagaimanapun, kadangkala aksara bercelaru muncul apabila data Cina dikembalikan, yang membawa masalah pada paparan dan pemprosesan data halaman hadapan. Artikel ini akan memperkenalkan beberapa kaedah untuk menyelesaikan masalah data JSON Cina yang kacau-bilau dalam PHP, dengan harapan dapat membantu pembangun menangani masalah biasa ini dengan lebih baik. Beberapa penyelesaian yang biasa digunakan akan diperkenalkan secara terperinci di bawah, dengan contoh kod khusus.

Kaedah 1: Tetapkan parameter kedua JSON_UNESCAPED_UNICODE apabila menggunakan fungsi json_encode

Dalam PHP, apabila menggunakan fungsi json_encode untuk menukar tatasusunan atau objek kepada rentetan format JSON, anda boleh mengelakkan bahasa Cina ditukar dengan menetapkan parameter kedua JSON_UNESCAPED_UNICODE ditakrifkan sebagai pengekodan Unicode, mengakibatkan aksara bercelaru. Berikut ialah kod sampel:

$data = array(
    'name' => '张三',
    'age' => 30
);

echo json_encode($data, JSON_UNESCAPED_UNICODE);

Dalam contoh ini, kami menukar tatasusunan $data kepada rentetan format JSON melalui json_encode, dan menetapkan parameter JSON_UNESCAPED_UNICODE supaya aksara Cina tidak akan terlepas dan aksara Cina asal akan dikekalkan.

Kaedah 2: Gunakan fungsi pengepala untuk menetapkan Jenis Kandungan kepada aplikasi/json

Apabila mengembalikan data JSON, anda boleh menggunakan fungsi pengepala untuk menetapkan respons Jenis Kandungan kepada aplikasi/json untuk memberitahu penyemak imbas bahawa data itu dikembalikan ialah format JSON. Ini membantu penyemak imbas menghuraikan data JSON yang dikembalikan dengan betul dan mengelakkan aksara bercelaru. Berikut ialah contoh kod:

$data = array(
    'name' => '李四',
    'age' => 25
);

header('Content-Type: application/json; charset=utf-8');
echo json_encode($data);

Dalam contoh ini, kita mula-mula menggunakan fungsi pengepala untuk menetapkan Content-Type kepada aplikasi/json dan menentukan pengekodan kepada utf-8, dan kemudian gunakan json_encode untuk menukar tatasusunan $data menjadi Pemulangan rentetan format JSON.

Kaedah 3: Gunakan fungsi mb_convert_encoding untuk menukar pengekodan

Kadangkala, walaupun jika parameter JSON_UNESCAPED_UNICODE ditetapkan atau Content-Type ditetapkan kepada application/json, aksara bercelaru tetap akan muncul. Pada masa ini, anda boleh cuba menggunakan fungsi mb_convert_encoding untuk menukar data kepada pengekodan UTF-8. Berikut ialah contoh kod:

$data = array(
    'name' => '王五',
    'age' => 35
);

$jsonData = json_encode($data);

$jsonData = mb_convert_encoding($jsonData, 'UTF-8', 'UTF-8');

echo $jsonData;

Dalam contoh ini, kami mula-mula menggunakan json_encode untuk menukar data kepada rentetan format JSON, kemudian menukarnya kepada pengekodan UTF-8 melalui mb_convert_encoding, dan akhirnya mengembalikannya ke halaman hujung hadapan.

Ringkasan

Apabila anda menghadapi masalah data JSON bercelaru Cina yang dikembalikan oleh PHP semasa pembangunan, anda boleh mencuba kaedah di atas untuk menyelesaikannya. Dengan menetapkan parameter JSON_UNESCAPED_UNICODE, menetapkan Content-Type kepada application/json, atau menggunakan fungsi mb_convert_encoding untuk menukar pengekodan, masalah aksara Cina yang kacau-bilau boleh dielakkan dengan berkesan. Saya berharap kaedah yang diperkenalkan dalam artikel ini dapat membantu pembangun yang mempunyai masalah yang sama, supaya ciri-ciri aksara Cina dapat dikekalkan dengan tepat semasa penghantaran data.

Atas ialah kandungan terperinci Kaedah untuk menyelesaikan masalah data JSON Cina yang kacau dalam PHP. 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