最近在做一個小偷程序,需要用到iconv函數把抓取來過的utf-8編碼的頁面轉成gb2312,
發現只有用iconv函數把抓取過來的數據一轉碼數據就會無緣無故的少一些。
讓我郁悶了好一會兒,去網上一查資料才知道這是iconv函數的一個bug。iconv在轉換字符"—"到gb2312時會出錯 phperz.com
解決方法很簡單,就是在需要轉成的編碼後加 "//IGNORE" 也就是iconv函數第二個參數後.如下:
以下為引用的內容:
iconv("UTF-8","GB2312//IGNORE",$data)
ignore的意思是忽略轉換時的錯誤,如果沒有ignore參數,所有該字符後面的字符串都無法被保存。