Rumah >pembangunan bahagian belakang >masalah PHP >Bagaimana untuk menukar php json kepada bahasa Cina

Bagaimana untuk menukar php json kepada bahasa Cina

藏色散人
藏色散人asal
2021-09-17 10:48:493483semak imbas

Cara menukar php json kepada bahasa Cina: 1. Urlencode medan bahasa Cina 2. Gunakan fungsi json_encode untuk mengekod 3. Gunakan urldecode untuk memproses hasilnya.

Bagaimana untuk menukar php json kepada bahasa Cina

Persekitaran pengendalian artikel ini: sistem Windows 7, PHP versi 7.1, komputer Dell G3

Cara untuk tukar php json ke bahasa Cina ? Bagaimana untuk menukar rentetan format json Cina secara normal dalam PHP

Bagaimana untuk menukar rentetan format json, dua fungsi disediakan dalam manual php:

json_encode: JSON untuk pembolehubah Pengekodan

json_decode: Mengekod rentetan dalam format JSON

Mari kita lihat contoh di bawah:

 $arr = ['a', 'b', 'c'];echo json_encode($arr);

Outputnya ialah:

["a","b","c"]

Tetapi , apabila kita letakkan aksara Cina dalam tatasusunan, masalah akan berlaku:

 $arr = [    '世界',    '你好',];echo json_encode($arr);

Hasil output ialah:

["\u4e16\u754c","\u4f60\u597d"]

Hasil ini jelas bukan yang kita mahu, tetapi Mengapa ini berlaku? Kerana apabila nilai kami mengandungi bahasa Cina, apabila PHP melakukan pengekodan json padanya, lapisan bawah akan melakukan pengekodan unicode pada bahasa Cina, menyebabkan hasilnya tidak boleh dibaca

Jadi bagaimana untuk menyelesaikannya?

Kaedah 1

Anda boleh menggunakan kaedah urlencode dan urldecode untuk memintas proses transcoding kepada unicode Mula-mula urlencode medan Cina, kemudian json_encode, dan akhirnya menggunakan urldecode untuk memproses hasilnya, dan ia akan berfungsi seperti biasa Paparkan Bahasa Cina. Kod khusus adalah seperti berikut:

 $arr = [    '世界',    '你好',];echo urldecode(json_encode(array_map('urlencode', $arr)));

Hasil output ialah:

["世界","你好"]

Kaedah 2

Sejak versi PHP5.4, pegawai telah menambah yang baharu pilihan untuk Json : JSON_UNESCAPED_UNICODE. Selepas menambah pilihan ini, bahasa Cina tidak akan dikodkan secara automatik. Kod khusus adalah seperti berikut:

 $arr = [    '世界',    '你好',];echo json_encode($arr, JSON_UNESCAPED_UNICODE);

Outputnya ialah:

["世界","你好"]

Lihat, inilah hasil yang kami mahukan:)

Nota

Apa yang perlu kita perhatikan ialah memandangkan json_encode dan json_decode hanya menyokong aksara yang dikodkan utf-8, aksara gbk mesti ditukar jika anda ingin menggunakan fungsi json.

Pembelajaran yang disyorkan: "Tutorial Video PHP"

Atas ialah kandungan terperinci Bagaimana untuk menukar php json kepada bahasa Cina. 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