- 论坛徽章:
- 0
|
char * ConvertEnc( char *encFrom, char *encTo, const char * in)
{
static char bufout[1024], *sin, *sout;
int lenin, lenout, ret;
iconv_t c_pt;
if ((c_pt = iconv_open(encTo, encFrom)) == (iconv_t)-1)
{
#ifdef _DEBUG_XML_
printf("iconv_open false: %s ==> %s\n", encFrom, encTo);
#endif
return NULL;
}
iconv(c_pt, NULL, NULL, NULL, NULL);
lenin = strlen(in) + 1;
lenout = 1024;
sin = (char *)in;
sout = bufout;
ret = iconv(c_pt, &sin, (size_t *)&lenin, &sout, (size_t *)&lenout);
if (ret == -1)
{
return NULL;
}
iconv_close(c_pt);
return bufout;
} |
|