Rumah > Artikel > pembangunan bahagian belakang > Tukar objek php kepada kod kacau Cina json
Apabila melakukan pembangunan web, JSON
selalunya digunakan untuk menukar objek kepada JSON
data dan menghantarnya secara tak segerak melalui AJAX
. Walau bagaimanapun, apabila menggunakan bahagian belakang PHP untuk JSON
output berformat, anda mungkin menghadapi aksara Cina yang bercelaru selepas objek ditukar kepada format JSON
. Artikel ini menerangkan cara menyelesaikan masalah ini.
Dalam kod PHP, kami menggunakan fungsi json_encode()
untuk menukar objek kepada rentetan dalam format JSON, dan kemudian mengeluarkannya melalui echo
. Walau bagaimanapun, apabila JSON mengandungi aksara Cina, aksara bercelaru akan muncul, seperti yang ditunjukkan dalam rajah berikut:
Aksara Cina yang jelas ditukar kepada aksara yang bercelaru, yang sangat berbahaya kepada pengguna dan pembangun semuanya tidak mesra. Seterusnya, kami akan memperkenalkan tiga penyelesaian.
Tambah json_encode()
sebelum fungsi json_encode()->mb_convert_encoding()
untuk mengekod bahasa Cina secara manual ke dalam utf-8.
Kod sampel adalah seperti berikut:
<?php $arr = [ 'name' => '张三', 'age' => 18, 'gender' => '男' ]; echo mb_convert_encoding(json_encode($arr, JSON_UNESCAPED_UNICODE), 'UTF-8'); ?>
Selepas menambah sekeping kod ini, bahasa Cina dalam rentetan output akan ditukar dengan betul kepada pengekodan utf-8 dan bukannya aksara yang bercelaru.
json_encode()
Tambah parameter json_encode()
dalam fungsi JSON_UNESCAPED_UNICODE
, beritahu fungsi json_encode()
untuk tidak mengekod bahasa Cina ke dalam Unikod dan hanya jaga orang cina.
Kod sampel adalah seperti berikut:
<?php $arr = [ 'name' => '张三', 'age' => 18, 'gender' => '男' ]; echo json_encode($arr, JSON_UNESCAPED_UNICODE); ?>
Selepas menambah parameter ini, bahasa Cina dalam output JSON akan dikeluarkan dengan betul dan bukannya aksara yang kacau.
Dalam tetapan teras PHP, terdapat parameter default_charset
, yang menunjukkan pengekodan aksara lalai yang digunakan semasa mengeluarkan beberapa teks. Jika parameter ini ditetapkan kepada UTF-8, bahasa Cina akan dikodkan dengan betul apabila mengeluarkan JSON.
Kod sampel adalah seperti berikut:
<?php ini_set('default_charset', 'utf-8'); $arr = [ 'name' => '张三', 'age' => 18, 'gender' => '男' ]; echo json_encode($arr); ?>
Letakkan kod ini dalam skrip yang perlu mengeluarkan JSON untuk memastikan bahasa Cina dalam JSON tidak akan kacau.
Apabila melakukan pembangunan web, adalah perkara biasa untuk menggunakan format JSON untuk penghantaran data. Dalam PHP, apabila menggunakan fungsi json_encode()
untuk menyerikan objek menjadi rentetan dalam format JSON, aksara Cina yang kacau-bilau mungkin muncul. Artikel ini memperkenalkan tiga penyelesaian: pengekodan bahasa Cina secara manual, menetapkan parameter json_encode()
dan mengubah suai parameter default_charset
dalam tetapan teras PHP. Kaedah ini boleh menyelesaikan masalah aksara Cina JSON yang kacau dengan berkesan, dan penggunaan khusus boleh dipilih mengikut situasi sebenar.
Atas ialah kandungan terperinci Tukar objek php kepada kod kacau Cina json. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!