int main()
{
char str[200] = {0};
char out[500] = {0};
str[0]=0x00; str[1]=0x52; str[2]=0x00; str[3]=0x65; str[4]=0x00; str[5]=0x73; str[6]= 0x00; str[7]=0x74;
for(int i=0;i<sizeof(str);i++)
cout<<"-"<<str[i];
changeCharEncoding("UCS-2","ISO8859-1",str,out,sizeof(out));
cout<<"\noutput : "<<out;
for(int i=0;i<sizeof(out);i++)
cout<<":"<<out[i];
}
//encoding function
int changeCharEncoding(const char *from_charset, const char *to_charset, const char *input, char *output, int out_size)
{
size_t input_len = 8;
size_t output_len = out_size;
iconv_t l_cd;
if ((l_cd = iconv_open (to_charset, from_charset)) == (iconv_t) -1)
{
return -1;
}
int rc = iconv(l_cd, (char **)&input, &input_len, (char **)&output, &output_len);
if (rc == -1)
{
iconv_close(l_cd);
return -2;
}
else
{
iconv_close(l_cd);
}
}
請建議我一種將16位數據轉換爲8位的方法。我嘗試過使用iconv。同時建議我是否還有其他事情要做。需要將16位數據轉換爲8位
通過它非常清晰這將是困難的。你打算怎麼處理你的溢出?如果您要轉換字符集,您需要非常確定源代碼和目標編碼,並且您需要一種機制來處理不正確的轉換。 – 2013-10-11 19:45:17
「數據」是什麼意思?而「轉換」是什麼意思,甚至?你是否想要做Unicode文本的ASCII表示? –
另外,C ** XOR ** C++?選擇一個。 – 2013-10-11 19:48:27