PHP iconv 函數(shù)轉(zhuǎn)gb2312的bug解決方法
更新時(shí)間:2009年10月11日 15:03:43 作者:
之前寫過一篇解決xajax庫中文亂碼的問題,說到可以用 iconv( "UTF-8", "gb2312" , $FormValues['a']) 來轉(zhuǎn)換,最近發(fā)現(xiàn)更好的寫法應(yīng)該是。
iconv( "UTF-8", "gb2312//IGNORE" , $FormValues['a'])
ignore的意思是忽略轉(zhuǎn)換時(shí)的錯(cuò)誤,發(fā)現(xiàn)iconv在轉(zhuǎn)換字符"—"到gb2312時(shí)會(huì)出錯(cuò),如果沒有ignore參數(shù),所有該字符后面的字符串都無法被保存。
另外mb_convert_encoding沒有這個(gè)bug,所以最好的寫法是:
mb_convert_encoding($FormValues['a'], "gb2312", "UTF-8");
但是需要先enable mbstring 擴(kuò)展庫。
也可以把mysql數(shù)據(jù)庫的collation設(shè)成utf-8就不用作轉(zhuǎn)換了
ignore的意思是忽略轉(zhuǎn)換時(shí)的錯(cuò)誤,發(fā)現(xiàn)iconv在轉(zhuǎn)換字符"—"到gb2312時(shí)會(huì)出錯(cuò),如果沒有ignore參數(shù),所有該字符后面的字符串都無法被保存。
另外mb_convert_encoding沒有這個(gè)bug,所以最好的寫法是:
mb_convert_encoding($FormValues['a'], "gb2312", "UTF-8");
但是需要先enable mbstring 擴(kuò)展庫。
也可以把mysql數(shù)據(jù)庫的collation設(shè)成utf-8就不用作轉(zhuǎn)換了
相關(guān)文章
php使用Cookie實(shí)現(xiàn)和用戶會(huì)話的方法
這篇文章主要介紹了php使用Cookie實(shí)現(xiàn)和用戶會(huì)話的方法,分析了Cookie的原理、設(shè)置與使用技巧,需要的朋友可以參考下2015-01-01Wordpress 相冊(cè)插件 NextGEN-Gallery 添加目錄將中文轉(zhuǎn)為拼音的解決辦法
NextGEN Gallery是Wordpress中著名的相冊(cè)插件,遺憾的是不支持中文等unicode字符,本文將介紹如何將目錄轉(zhuǎn)換為拼音(添加圖集時(shí))。2010-12-12one.php 多項(xiàng)目、函數(shù)庫、類庫 統(tǒng)一為一個(gè)版本的方法
這篇文章主要介紹了one.php 多項(xiàng)目、函數(shù)庫、類庫 統(tǒng)一為一個(gè)版本的方法,需要的朋友可以參考下2020-08-08