php--轉碼函數
最近在用dedecms二次開發會員功能;大家都知道dedecms編碼是GBK格式的;所以在我們在項目中經常需要轉碼,在我了解中有兩種轉碼方式:一是:iconv;二是mb_convert_encoding;
下面介紹下兩種轉碼方式的用法:
iconv:
iconv(“UTF-8″,”GB2312”,$string);將$string由utf-8編碼轉化為GBK格式
第一個參數:現在字符串的編碼格式;
第二個參數:想要轉化的編碼格式;
第三個參數:想要轉化的字符串;
mb_convert_encoding:
mb_convert_encoding($string, “UTF-8″, “GBK”);將$string由GBK轉化為utf-8格式
{1.需要先enable mbstring 擴展庫
2.mb_convert_encoding 可以指定多種輸入編碼,它會根據內容自動識別,但是執行效率比iconv差太多
}
第一個參數:想要轉化的字符串;
第二個參數:想要轉化的編碼格式;
第三個參數:現在字符串的編碼格式;
iconv 和 mb_convert_encoding 兩個轉碼函數的區別:
其實我用刀這個轉碼函數主要是在會員信息導出excel格式時,當時我添加會員的時候轉碼存入數據庫用的是iconv,但是在我導出excel時,我用iconv時,導出部分信息可能出現空白的,這樣就算是一個bug,但是用mb_convert_encoding時則不會出現這樣的情況,於是我想弄清楚這兩個函數到底有什麽區別我就去百度看了一下;
這是我在百度裏面搜到是這樣說的:
發現iconv在轉換字符”—”到gb2312時會出錯,如果沒有ignore參數,所有該字符後面的字符串都無法被保存。不管怎麽樣,這個”—”都無法轉換成功,無法輸出。 另外mb_convert_encoding沒有這個bug.
一般情況下用 iconv,只有當遇到無法確定原編碼是何種編碼,或者iconv轉化後無法正常顯示時才用mb_convert_encoding 函數.
所以大家在使用的時候要註意到自己想要轉換換的編碼格式具體是哪種,這樣你才知道哪種是更好用的呀!
php--轉碼函數