- 论坛徽章:
- 0
|
#include <string.h>
#include <stdlib.h>
#include <iconv.h>
int main()
{
char inbuf[20]="中福建省运营根";//"汉";
char in_code;
char outbuf[20];
iconv_t cd;
char *pin = inbuf;
char *pout= outbuf; ;
size_t insize=strlen(inbuf),outsize=20,res;
memset(outbuf,0,outsize);
cd = iconv_open("gb2312", "unicode");//("ascii","unicode");
iconv(cd,NULL,NULL,NULL,NULL);
printf("insize = %d\n outsize = %d\n",insize ,outsize);
printf("cd = %d\n",cd);
res = iconv(cd,&pin,&insize,&pout,&outsize);
if(res == -1)
{
printf("error\n");
return -1;
}
printf("unicode = %x\n",pout);
iconv_close(cd);
return 0;
}
gcc无错, res 总是等于 -1,请问是iconv的参数有问题还是iconv_open有问题?
很郁闷,不知道问题到底出在哪里?
请指教!
[ 本帖最后由 yibanbano 于 2006-1-23 17:40 编辑 ] |
|