c語言調用iconv忽略不可識別的字符

網上抓來的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。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章