Rumah > pembangunan bahagian belakang > masalah PHP > Perkara yang perlu dilakukan jika fungsi iconv dalam PHP melaporkan ralat

Perkara yang perlu dilakukan jika fungsi iconv dalam PHP melaporkan ralat

WBOY
Lepaskan: 2023-03-15 17:38:01
asal
2599 orang telah melayarinya

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",..)".

Perkara yang perlu dilakukan jika fungsi iconv dalam PHP melaporkan ralat

Persekitaran pengendalian artikel ini: sistem Windows 10, PHP versi 7.1, komputer Dell G3

Apa yang perlu dilakukan jika iconv berfungsi dalam php melaporkan ralat

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)
Salin selepas log masuk

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``);`
Salin selepas log masuk

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``);`
Salin selepas log masuk

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``);`
Salin selepas log masuk

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 &#39;<br />&#39;;
    echo iconv(&#39;GB2312&#39;, &#39;UTF-8&#39;, $str); //将字符串的编码从GB2312转到UTF-8
    echo &#39;<br />&#39;;
    echo iconv_substr($str, 1, 1, &#39;UTF-8&#39;); //按字符个数截取而非字节
    print_r(iconv_get_encoding()); //得到当前页面编码信息
    echo iconv_strlen($str, &#39;UTF-8&#39;); //得到设定编码的字符串长度
  ?>
Salin selepas log masuk

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!

Label berkaitan:
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