- 论坛徽章:
- 0
|
#include <iconv.h>
#include <stdio.h>
#include <locale.h>
#include <errno.h>
#include <string.h>
#include <stdlib.h>
#include <strings.h>
int main(int argc, char * argv[])
{
int ret;
char *str = (char*)malloc(10);
int src_len;
int dest_len;
char *dest;
iconv_t conv, conv2;
strcpy(str, \"test\");
src_len = strlen(str)+ 1;
dest_len = 1000;
dest = (char*)malloc(dest_len);
bzero(dest, dest_len);
conv = iconv_open(\"ISO-8859-1\", \"UTF-8\");
if (conv == (iconv_t)-1) {
printf(\"iconv_open: errno[%d]msg[%s]\\n\", errno, strerror(errno));
return -1;
}
ret = iconv(conv, (char**)&str, &src_len, &dest, &dest_len);
if (ret == -1) {
printf(\"iconv: [%d][%s]\\n\", errno, strerror(errno));
return -1;
}
printf(\"%s - %S\\n\", str, dest);
iconv_close(conv);
free(dest);
free(str);
return 0;
}
执行结果iconv: [12][Not enough space]
请问什么原因啊? |
|