網上抓來的html數據經常需要進行轉碼(utf8和gbk互轉等),總會出現特殊字符造成 iconv轉碼失敗的情況,例如http://app.tongbu.com/bizhi/newipad/cateshow-1-0-1-515427.html,數據是utf8,如果轉換爲其他格式編碼就會出錯。如果不解決這個問題,整個網站都將轉碼失敗。
解決這個問題的方法很簡單,只需在目標編碼後面加上 //IGNORE 就可以忽略掉未知字符。
即:iconv_t cd = iconv_open("utf-8//IGNORE","gbk");
另外,如果你使用的是shell腳本,可以使用-c參數忽略輸出的非法字符,假如文件a.htm含有特殊字符的utf8文件,我們可以使用命令:iconv -f utf-8 -c a.htm > b.htm,重定向一個新的utf8文件b.htm。