请教UCS2编码转换问题!
请问在linux系统里,我要将字符串转换成UCS2字符串,
比如“你好”字符串的编码为“0xe3 0xc4 0xc3 0xba”,
怎样经过变换后为“0x4f 0x60 0x59 0x7d”?
问题点数:20、回复次数:3Top
1 楼bshawk(bshawk)回复于 2004-09-03 12:44:26 得分 20
用linux下的iconv_open, iconv_close, iconv 系列函数很easy的!!
自己去看看吧,只要你是搞开发的,一会会就搞定了:P
good luck!Top
2 楼ycwang(西部牛仔)回复于 2004-09-06 10:45:27 得分 0
bshawk(bshawk),你好:
我测试后iconv_open, iconv_close,但是iconv 提示我错误。
我的程序如下:
if((cd = iconv_open("UCS2","ASCII")) != (iconv_t)-1)
{
printf("Opened.\n");
if((n = iconv(cd, (const char **)&pin, &inlen, &pout, &outlen))==-1)
{
printf("iconv error.\n");
}
else
{
pout[outlen]='\0';
printf(pout);
}
iconv_close(cd);
}
else
printf("Open is failed.\n");
请问是不是iconv_open("UCS2","ASCII")有问题,该如何改。Top
3 楼ycwang(西部牛仔)回复于 2004-09-06 12:01:08 得分 0
搞定了,原来outlen设置为0,且iconv_open("UCS2","ASCII")改为
iconv_open("unicode","gb2312")就可以了,谢谢bshawk(bshawk)了。Top




