我用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));碶這個字會被轉(zhuǎn)換為未知字符,?這個字會被ignore掉,變成""。GBK字符集里面這兩個字都沒有,為什么一個會被錯誤轉(zhuǎn)碼,一個會被ignore?ignore是因為識別不了,被轉(zhuǎn)換為"",錯誤編碼是因為系統(tǒng)以為能識別,結(jié)果轉(zhuǎn)碼錯誤了。所以這倆字有啥區(qū)別?
添加回答
舉報
0/150
提交
取消