《PHP教程:php中字符集轉換iconv函數使用總結》要點:
本文介紹了PHP教程:php中字符集轉換iconv函數使用總結,希望對您有用。如果有疑問,可以聯系我們。
iconv函數庫能夠完成各種字符集間的轉換,是php編程中弗成缺少的基礎函數庫.PHP實例
用法如下:PHP實例
擴展如下:PHP實例
備注:PHP實例
1、iconv不是php的默認函數,也是默認安裝的模塊.必要安裝才能用的.PHP實例
如果是windows2000+php,你可以修改php.ini文件,將extension=php_iconv.dll前的";"去掉,同時你要copy你的原php安裝文件下的iconv.dll到你的winnt/system32下(如果你的dll指向的是這個目錄,我當地的沒有操作這一步)
在linux環境下,用靜態安裝的方式,在configure時加多一項 --with-iconv就可以了,phpinfo看得到iconv的項.(Linux7.3+Apache4.06+php4.3.2);PHP實例
到此php中的iconv 介紹完畢PHP實例
2、用iconv函數把抓取來過的utf-8編碼的頁面轉成gb2312, 發現只有用iconv函數把抓取過來的數據一轉碼數據就會無緣無故的少一些.原因是這樣的:
PHP實例
可以這樣修改iconv("UTF-8","GB2312//IGNORE",$string)? 會忽略掉不能轉化的字符;PHP實例
附加:PHP實例
PHP中的mb_convert_encoding與iconv函數介紹PHP實例
mb_convert_encoding這個函數是用來轉換編碼的,和iconv函數差不多.PHP實例
英文一般不會存在編碼問題,只有中文數據才會有這個問題.好比你用Zend Studio或Editplus寫程序時,用的是gbk編碼,如果數據需要入數據庫,而數據庫的編碼為utf8時,這時就要把數據進行編碼轉換,不然進到數據庫就會變成亂碼.PHP實例
mb_convert_encoding的用法見官方:PHP實例
http://cn.php.net/manual/zh/function.mb-convert-encoding.phpPHP實例
做一個GBK To UTF-8PHP實例
再來個GB2312 To Big5PHP實例
不過要使用上面的函數必要安裝但是必要先enable mbstring 擴展庫,道理還是一樣的,修改php.ini.
PHP中的另外一個函數iconv也是用來轉換字符串編碼的,與上函數功能相似.PHP實例
下面還有一些詳細的例子:PHP實例
用法:PHP實例
string mb_convert_encoding ( string str, string to_encoding [, mixed from_encoding] )PHP實例
必要先enable mbstring 擴展庫,在 php.ini里將; extension=php_mbstring.dll 前面的 ; 去掉
mb_convert_encoding 可以指定多種輸入編碼,它會根據內容自動識別,但是執行效率比iconv差太多,那為何還要講解 這個 mb_convert_encoding()函數呢?答案如下:PHP實例
發現iconv在轉換字符”―”到gb2312時會出錯,如果沒有ignore參數,所有該字符后面的字符串都無法被保留.不管怎么樣,這個”―”都無法轉換成功,無法輸出. 另外mb_convert_encoding沒有這個bug.PHP實例
一般環境下用 iconv,只有當遇到無法確定原編碼是何種編碼,或者iconv轉化后無法正常顯示時才用mb_convert_encoding 函數.PHP實例
歡迎參與《PHP教程:php中字符集轉換iconv函數使用總結》討論,分享您的想法,維易PHP學院為您提供專業教程。