iconv for linux(c)

// code_convert("gb2312","utf-8",inbuf,outbuf,outlen);
static int code_convert(const char *from_charset,const char *to_charset,
char *inbuf, char *outbuf, const size_t ol )
{
iconv_t cd;
char **pin = &inbuf;
char **pout = &outbuf;
size_t inlen = strlen(inbuf) + 1;
size_t outlen = ol;

cd = iconv_open(to_charset, from_charset);
if (cd == (iconv_t)-1)
return -1;

if (iconv(cd, pin, &inlen, pout, &outlen) == -1)
return -1;

iconv_close(cd);
return 0;
}

posted @ 2017-02-27 14:54  sciapex  阅读(238)  评论(0)    收藏  举报