static int conv_charset_fun(const char *dest, const char *src, char *input, size_t ilen, char *output, size_t olen) { size_t buflen = olen; iconv_t conv = iconv_open(dest, src); if(conv == (iconv_t) -1) { ULOG("iconv_open err!\n"); return -1; } memset(output, 0, olen); if(iconv(conv, &input, &ilen, &output, &buflen)) { ULOG("iconv err!\n"); return -1; } iconv_close(conv); return (olen -buflen); }