我用UTF8轉(zhuǎn)GBK,用的iconv函數(shù)void TransContent(const char *pFromCode, const char *pToCode, const char *pInBuf, size_t iInLen, char *pOutBuf, size_t iOutLen){ char* sResult = NULL; //打開字符集轉(zhuǎn)換
iconv_t hIconv = iconv_open(pToCode, pFromCode); if (!hIconv) return; //開始轉(zhuǎn)換
size_t iRet = iconv(hIconv, (char **)(&pInBuf), &iInLen, &pOutBuf, &iOutLen); //關(guān)閉字符集轉(zhuǎn)換
iconv_close(hIconv);
}
TransContent("UTF-8", "GBK//IGNORE", "碶", strlen("碶"), pOutputBuf, sizeof(pOutputBuf));
TransContent("UTF-8", "GBK//IGNORE", "?", strlen("?"), pOutputBuf, sizeof(pOutputBuf));碶這個(gè)字會被轉(zhuǎn)換為未知字符,?這個(gè)字會被ignore掉,變成""。GBK字符集里面這兩個(gè)字都沒有,為什么一個(gè)會被錯誤轉(zhuǎn)碼,一個(gè)會被ignore?ignore是因?yàn)樽R別不了,被轉(zhuǎn)換為"",錯誤編碼是因?yàn)橄到y(tǒng)以為能識別,結(jié)果轉(zhuǎn)碼錯誤了。所以這倆字有啥區(qū)別?
添加回答
舉報(bào)
0/150
提交
取消