Rumah > pembangunan bahagian belakang > masalah PHP > Sebab dan penyelesaian untuk aksara Cina yang kacau dalam fail PHP

Sebab dan penyelesaian untuk aksara Cina yang kacau dalam fail PHP

PHPz
Lepaskan: 2023-04-06 11:30:02
asal
3003 orang telah melayarinya

Dalam proses menggunakan PHP untuk membangunkan tapak web, kami sering menghadapi masalah aksara Cina bercelaru dalam fail. Masalah ini tidak sukar untuk diselesaikan, tetapi terdapat beberapa isu yang perlu diberi perhatian.

1. Punca masalah:

1. Pengekodan fail hendaklah ditetapkan kepada UTF-8 (tiada BOM), bukan GB2312 atau GBK.

2. Tetapan pengekodan penyemak imbas adalah salah. Pengekodan lalai sesetengah penyemak imbas ialah GB2312 atau GBK bukannya UTF-8. Jika charset tidak dinyatakan sebagai UTF-8 dalam pengepala halaman web, aksara Cina bercelaru akan muncul.

3. Tetapan pengekodan pangkalan data adalah salah. Pengekodan pangkalan data hendaklah ditetapkan kepada UTF-8, bukan GBK atau GB2312.

4. Tetapan pengekodan output adalah salah. Jika gema mengeluarkan rentetan secara langsung dalam fail PHP, anda perlu memastikan bahawa pengekodan rentetan output ialah UTF-8.

5. Sebagai contoh, apabila editor di bawah platform Windows menyimpan fail Cina, ia mungkin disimpan dalam pengekodan ANSI, dan masalah aksara Cina bercelaru mungkin juga berlaku.

2. Penyelesaian:

1. Ralat tetapan pengekodan fail:

Tetapkan pengekodan kepada UTF-8 dalam editor, atau tukar pengekodan fail kepada UTF-8 ( Tiada BOM).

2. Ralat tetapan pengekodan penyemak imbas:

Tambah charset=UTF-8 dalam pengepala halaman web untuk memaksa penyemak imbas menggunakan pengekodan UTF-8.

header("Content-Type:text/html;charset=UTF-8");
Salin selepas log masuk

3. Ralat tetapan pengekodan pangkalan data:

Gunakan arahan berikut untuk mengubah suai pengekodan pangkalan data kepada UTF-8:

ALTER DATABASE dbname DEFAULT CHARACTER SET utf8;
Salin selepas log masuk

Untuk jadual sedia ada, ubah suai pengekodan jadual:

ALTER TABLE tablename CONVERT TO CHARACTER SET utf8;
Salin selepas log masuk

4. Ralat tetapan pengekodan output:

Gunakan fungsi berikut untuk menukar rentetan kepada pengekodan UTF-8:

$str = iconv("当前编码", "UTF-8", $str);
Salin selepas log masuk

Jika aksara output Jika pengekodan rentetan ialah GBK, pengekodan GB2312 digunakan untuk output secara langsung.

5 Lain-lain:

Tukar pengekodan fail kepada UTF-8, atau gunakan editor lain.

Ringkasnya, masalah aksara Cina bercelaru kebanyakannya disebabkan oleh isu tetapan pengekodan. Selagi editor, fail PHP, pangkalan data dan penyemak imbas ditetapkan kepada pengekodan UTF-8, masalah aksara Cina bercelaru boleh dielakkan.

Atas ialah kandungan terperinci Sebab dan penyelesaian untuk aksara Cina yang kacau dalam fail PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan