Kaedah: 1. Tambah "//IGNORE" selepas parameter kedua fungsi, sintaksnya ialah "iconv("UTF-8", "GB2312//IGNORE",..)"; Gantikan gb2312 dengan "utf-8", sintaksnya ialah "iconv("GB2312", "UTF-8",..)".
Persekitaran pengendalian artikel ini: sistem Windows 10, PHP versi 7.1, komputer Dell G3
iconv() Pengenalan
Fungsi iconv boleh menukar fail set aksara yang diketahui kepada fail set aksara yang diketahui lain. Contohnya: Tukar daripada GB2312 kepada UTF-8.
Fungsi iconv dibina dalam php5 dan set aksara GB dihidupkan secara lalai.
ralat iconv()
iconv akan membuat ralat apabila menukar aksara "—" kepada gb2312. Penyelesaiannya ialah menambah "" selepas pengekodan yang perlu ditukar. //IGNORE", iaitu selepas parameter kedua fungsi iconv. Seperti berikut:
iconv("UTF-8", "GB2312//IGNORE", $data)
abaikan bermaksud mengabaikan ralat semasa penukaran Tanpa parameter abaikan, semua rentetan yang mengikuti aksara ini tidak boleh disimpan.
Pustaka fungsi iconv dalam PHP boleh melengkapkan penukaran antara pelbagai set aksara dan merupakan pustaka fungsi asas yang sangat diperlukan dalam pengaturcaraan PHP tetapi kadangkala iconv akan kurang dapat mengubah kod beberapa data tanpa sebab; Sebagai contoh, ralat akan berlaku apabila menukar aksara "— atau Cina Tradisional" kepada gb2312.
Mari kita lihat penggunaan fungsi ini.
Aplikasi paling mudah, gantikan gb2312 dengan utf-8:
`$text``=iconv(``"GB2312"``,``"UTF-8"``,``$text``);`
Dalam proses menggunakan $text=iconv("UTF-8","GB2312",$text) , jika anda menemui beberapa aksara khas, seperti: "— atau Cina Tradisional", "." dalam nama Inggeris, dsb., penukaran akan terganggu. Teks selepas aksara ini tidak boleh ditukar lagi.
Untuk menyelesaikan masalah ini, anda boleh menggunakan kod berikut untuk mencapainya:
`$text``=iconv(``"UTF-8"``,``"GBK"``,``$text``);`
Anda membacanya dengan betul, semudah itu, jangan gunakan gb2312 dan tulis sebagai GBK, itu sahaja.
Terdapat kaedah lain, parameter kedua, tambah //ABAIKAN, abaikan ralat, seperti berikut:
`iconv(``"UTF-8"``,``"GB2312//IGNORE"``,``$data``);`
Tiada perbandingan khusus antara kedua-dua kaedah ini, saya rasa yang pertama satu (GBK Daripada gb2312) kaedah adalah lebih baik.
Contohnya adalah seperti berikut:
<?php echo $str= ‘你好,这里是卖咖啡!’; echo '<br />'; echo iconv('GB2312', 'UTF-8', $str); //将字符串的编码从GB2312转到UTF-8 echo '<br />'; echo iconv_substr($str, 1, 1, 'UTF-8'); //按字符个数截取而非字节 print_r(iconv_get_encoding()); //得到当前页面编码信息 echo iconv_strlen($str, 'UTF-8'); //得到设定编码的字符串长度 ?>
Pembelajaran yang disyorkan: "Tutorial Video PHP"
Atas ialah kandungan terperinci Perkara yang perlu dilakukan jika fungsi iconv dalam PHP melaporkan ralat. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!