網上抓來的代碼經常需要進行碼制轉換,問題是經常出現特殊字符造成 iconv轉換的失敗. 其實可以忽略掉特殊字符.其實在目標編碼的後面加上 //IGNORE 就可以忽略掉未知字符.
另外還有//TRANSLATE ,將把不認識的字符自動轉換爲相近的字符
iconv_t cd = iconv_open("utf-8//IGNORE","gbk") ; if((int)cd == -1) return; const char * inbuf = "class=c01>房產大家談</td></tr>>"; size_t inlen = strlen(inbuf); char * buf = new char [1024]; char * outbuf = buf; memset(outbuf,0,1024); size_t outbytesleft = 1024; size_t st = iconv(cd,&inbuf,&inlen,&outbuf,&outbytesleft); delete buf;