在使用iconv进行编码转换的时候,一直不能成功,查了好久才发现竟然是参数问题。
iconv的函数原型:
size_t iconv(iconv_t cd, char **restrict inbuf,
size_t *restrict inbytesleft, char **restrict outbuf,
size_t *restrict outbytesleft);
第四个参数outbuf,我一直是这样传的:
定义char buf[128];
然后传入&buf, 可能iconv的内部实现要改变outbuf这个参数的值,总之这样传入就不行,只能再定义一个指针:
char *outbuf = buf;
然后传入&outbuf,成功!
阅读(1682) | 评论(0) | 转发(0) |