2010年10月7日

[PHP] iconv轉碼發生被截字的問題

轉碼一直是我在寫code時的煩惱
今天就發生這狀況
db使用BIG5,因此撈出的TEXT後使用ICONV做轉碼UTF-8



其它文章都沒問題,偏偏就某篇一直遇上被截字的問題
還好google翻出這個辦法做解決

【使用IGNORE忽略iconv轉碼錯誤】
使用iconv進行轉碼時常會因為查不到對應字而使輸岀中斷
使用IGORE可以忽略iconv轉碼錯誤,讓整段文字的輸出不會中斷
但有錯誤的地方會以@顯示


◎範例
iconv("utf-8","big5//IGNORE",$string);
iconv("big5","utf-8//IGNORE",$string); 


參考來源:yoonow.pixnet.net/blog/post/11141558

/**** 2010/10/22 補充 ***/
使用方式有三種
//TRANSLIT
//IGNORE
//TRANSLIT//IGNORE

如果在第二個參數後面加上//TRANSLIT
意味著當一個被轉換的字符不在被轉換的編碼裡面,則用一個或幾個類似的字符替代
如果加上//IGNORE,當一個被轉換的字符不在被轉換的編碼裡面,就直接去掉


/**** 2010/12/14 補充 ***/
後來這個問題還是不斷發生,只要有utf-8和中文對轉就會出錯
例如「宏碁」的碁字,建議還是整套設計utf-8吧
php 在字碼上面問題很多!!

沒有留言:

張貼留言