


Aksara bercelaru muncul apabila data json ditukar kepada tatasusunan dalam php
Dalam pembangunan PHP, pemprosesan data JSON telah menjadi tugas biasa. Terutama apabila berinteraksi dengan bahagian hadapan atau menyambung dengan API pihak ketiga, JSON selalunya merupakan format data yang paling biasa.
Dalam proses menggunakan PHP untuk memproses data JSON, kadangkala data JSON ditukar kepada tatasusunan dan kelihatan bercelaru. Artikel ini akan meneroka sebab perkara ini dan cara membetulkannya.
1. Mengapakah watak bercelaru muncul?
Dalam PHP, menukar data JSON kepada tatasusunan melalui fungsi json_decode() ialah kaedah operasi biasa. Walau bagaimanapun, jika terdapat aksara Cina dalam data JSON, aksara Cina dalam tatasusunan yang ditukar mungkin bercelaru.
Ini kerana set aksara lalai yang digunakan oleh PHP ialah ISO-8859-1 dan bukannya UTF-8, jadi ia tidak dapat mengecam aksara Cina dengan betul dalam format pengekodan UTF-8, mengakibatkan aksara bercelaru.
2. Penyelesaian
1 Gunakan parameter kedua fungsi json_decode()
Selain menukar data JSON kepada tatasusunan, fungsi json_decode() juga boleh. Tambahkan parameter kedua untuk menentukan format pengekodan rentetan JSON.
Sebagai contoh, jika data JSON dikodkan UTF-8, ia boleh ditentukan melalui kod berikut:
$result = json_decode($json, true, JSON_UNESCAPED_UNICODE);
Antaranya, parameter ketiga JSON_UNESCAPED_UNICODE memberitahu PHP untuk tidak melarikan diri daripada aksara Cina, tetapi secara langsung Simpan pengekodan UTF-8 asal.
2. Tukar set aksara ISO-8859-1 kepada set aksara UTF-8
Penyelesaian lain ialah menukar set aksara ISO-8859-1 kepada set aksara UTF-8. Ini boleh dicapai dengan menggunakan fungsi iconv() atau fungsi mb_convert_encoding().
Sebagai contoh, menggunakan fungsi iconv() anda boleh menulis seperti ini:
$result = json_decode(iconv("ISO-8859-1", "UTF-8//IGNORE", $json), true);
Antaranya, parameter kedua "UTF-8//IGNORE" memberitahu fungsi iconv() untuk mengekod ISO-8859-1 Aksara ditukar kepada pengekodan UTF-8.
3. Tambahkan pernyataan format pengekodan terus ke fail PHP
Tambah kod berikut pada permulaan fail PHP:
header("Content-type:text/html;charset=utf-8");
Dengan cara ini anda boleh menentukan aksara set fail PHP sebagai pengekodan UTF -8 untuk memastikan aksara Cina boleh dikenali dengan betul.
Ringkasan:
Jika anda menghadapi aksara yang bercelaru semasa memproses data JSON dalam PHP, jangan panik Anda boleh menambah parameter kedua fungsi json_decode() atau menukar ISO-8859-. 1 ke dalam pengekodan UTF-8, atau tambahkan pengisytiharan set aksara pada permulaan fail PHP untuk menyelesaikan masalah.
Atas ialah kandungan terperinci Aksara bercelaru muncul apabila data json ditukar kepada tatasusunan dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)