Penyelesaian untuk menukar php kepada utf-8 aksara Cina yang kacau: 1. Tambahkan "header("Content-Type: text/html;charset=utf-8");" . Tukar fail Simpan sebagai "UTF-8" 3. Padamkan teg BOM.
Persekitaran pengendalian tutorial ini: sistem Windows 10, PHP versi 8.1, komputer DELL G3
php ke utf-8 Kod bercelaru bahasa Cina Apakah yang perlu saya lakukan?
Menukar halaman PHP kepada masalah pengekodan UTF-8
1.
header("Content-Type: text/html;charset=utf-8");
2. Masalah pengekodan fail PHP
Klik menu editor: "Fail"-> "Simpan Sebagai", anda boleh melihat pengekodan fail semasa, buat pasti pengekodan fail ialah: UTF-8,
Jika ia ANSI, anda perlu menukar pengekodan kepada: UTF-8.
3. Pengepala fail PHP Masalah BOM:
Fail PHP mesti tidak mempunyai teg BOM
Jika tidak, sesi tidak akan dapat digunakan dan akan terdapat gesaan yang serupa:
Amaran: session_start() [function.session-start]: Tidak boleh menghantar pengehad cache sesi - pengepala sudah dihantar
Ini kerana, apabila melaksanakan session_start(), seluruh halaman tidak boleh mempunyai Output , tetapi apabila teg BOM wujud dalam halaman PHP sebelumnya,
PHP menganggap teg BOM ini sebagai output, jadi ralat berlaku!
Jadi halaman PHP mesti memadamkan teg BOM
Cara untuk memadam teg BOM ini:
1 Anda boleh membuka fail dengan Dreamweaver dan menyimpannya semula untuk mengalih keluar BOM tag !
2. Anda boleh membuka fail dengan EditPlus dan dalam menu "Keutamaan"->"Fail"->"Tandatangan UTF-8", tetapkannya kepada: "Sentiasa alih keluar tandatangan",
Kemudian simpan fail dan anda boleh mengalih keluar tag BOM!
4. Apabila PHP menyimpan fail sebagai lampiran, isu pengekodan UTF-8:
Apabila PHP menyimpan fail sebagai lampiran, nama fail mesti dikodkan GB2312,
jika tidak , jika terdapat bahasa Cina dalam nama fail, ia akan bercelaru:
Jika PHP anda sendiri ialah fail yang dikodkan UTF-8,
Anda perlu menukar pembolehubah nama fail daripada UTF-8 Ke GB2312:
iconv("UTF-8", "GB2312", "$filename");
5 Apabila tajuk artikel dipenggal dan dipaparkan, aksara bercelaru atau "?"Secara amnya apabila tajuk artikel sangat panjang, sebahagian daripada. tajuk akan dipaparkan, yang akan Memotong tajuk artikel,
Memandangkan aksara Cina dalam format pengekodan UTF-8 akan menduduki 3 aksara lebar,
Apabila memotong tajuk, kadangkala hanya 1 daripada aksara Cina akan menjadi aksara terpotong atau 2 aksara lebar, jika
tidak dipintas sepenuhnya, aksara bercelaru atau tanda soal "?" , dan tiada masalah:
Pembelajaran yang disyorkan: "Tutorial Video PHP
"function get_brief_str($str, $max_length) { echo strlen($str) ."<br>"; if(strlen($str) > $max_length) { $check_num = 0; for($i=0; $i < $max_length; $i++) { if (ord($str[$i]) > 128) $check_num++; } if($check_num % 3 == 0) $str = substr($str, 0, $max_length)."..."; else if($check_num % 3 == 1) $str = substr($str, 0, $max_length + 2)."..."; else if($check_num % 3 == 2) $str = substr($str, 0, $max_length + 1)."..."; } return $str; }
Atas ialah kandungan terperinci Bagaimana untuk menukar php kepada utf-8 aksara Cina yang kacau. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!