PHP big5轉utf8不要用iconv(),iconv這個函數,用mb_convert_encoding

參考網址:VECTOR COOL 威得數位行銷

不要以為big5轉utf8就用iconv()這麼簡單

iconv("big5", "UTF-8", $str);

big5有很多字是沒有收錄的:

綫、綉、滙、栢、峯、頴、邨、着、双

iconv這個函數他遇到轉不出來的字,就停住了,可能會造成輸出文件中斷,導致文件結構錯誤。

請改用 mb_convert_encoding ,別高興太早 big5 沒有的字依然不會出來,只是不會因為遇到 big5 不認識的字就卡住,雖然輸出的速度好像會比iconv慢,不過順利解決問題。

測試:

$string = "轉碼測試功蓋銹abc轉碼測試"; 
$result = mb_convert_encoding($string,"utf-8","big5");
echo $result;

用法:

mb_convert_encoding( $str, $encoding1,$encoding2 );
$str,要轉換編碼文字

$encoding1,目標編碼,如utf-8,big5,大小寫均可
$encoding2,原始編碼,如UTF-8,BIG5,大小寫均可
mb_convert_encoding($str, "UTF-8"); //編碼轉換為utf-8
mb_convert_encoding($str, "UTF-8", "BIG5"); //原始編碼為BIG5轉UTF-8
mb_convert_encoding($str, "UTF-8", "auto"); //原始編碼不明,通過auto自動檢測,轉換UTF-8

 

本篇發表於 程式設計。將永久鏈結加入書籤。