2014年9月23日 星期二

php 的 iconv 來過濾不合法字元

這個年頭可能越來越少需要 big5 轉 utf-8 的,以前都這樣子轉

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

後來儘管是 utf-8 的格式,用來過濾一些奇怪的字元,會這樣子:

@iconv("utf-8", "UTF-8//IGNORE", $str);

但有時候,儘管轉出來,卻無法 json_encode ,所以會先用空白字元取代,於是加上 TRANSLIT
另外再加上 @ ,不然會跑出 Detected an illegal character in input string 之類的錯誤。

@iconv('utf-8', "UTF-8//TRANSLIT//IGNORE", $html);