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");
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;
Untuk jadual sedia ada, ubah suai pengekodan jadual:
ALTER TABLE tablename CONVERT TO CHARACTER SET utf8;
4. Ralat tetapan pengekodan output:
Gunakan fungsi berikut untuk menukar rentetan kepada pengekodan UTF-8:
$str = iconv("当前编码", "UTF-8", $str);
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!