- 论坛徽章:
- 0
|
帮忙看看转换代码哪里有错哈,我怎么转换不了呢?
#include <iconv.h>
#define OUTLEN 255
//代码转换:从一种编码转为另一种编码
int code_convert(char *from_charset,char *to_charset,char *inbuf,int inlen,char *outbuf,int outlen)
{
iconv_t cd;
int rc;
char **pin = &inbuf;
char **pout = &outbuf;
cd = iconv_open(to_charset,from_charset);
if (cd==0)
return -1;
memset(outbuf,0,outlen);
if (iconv(cd,pin,&inlen,pout,&outlen)==-1)
return -1;
iconv_close(cd);
return 0;
}
//UNICODE码转为GB2312码
int u2g(char *inbuf,int inlen,char *outbuf,int outlen)
{
return code_convert("utf-8","gb2312",inbuf,inlen,outbuf,outlen);
}
main()
{
char *in_utf8 = "老鼠爱大米:杨臣刚";
char out[OUTLEN];
int rc;
//unicode码转为gb2312码
rc = u2g(in_utf8,strlen(in_utf ,out,OUTLEN);
printf("unicode-->gb2312 out=%s\n",out);
return rc;
} |
|