当前位置: 技术问答>linux和unix
iconv 无效的参数
来源: 互联网 发布时间:2017-03-15
本文导语: #include #include #include #include #include #include #include int main(int argc, char * argv[]) { size_t ret; char in_utf8[] = "姝e?ㄥ??瑁?"; char in_gb2312[] = "正在安装"; int src_len = strlen(in_utf8); char szDes...
#include
#include
#include
#include
#include
#include
#include
int main(int argc, char * argv[])
{
size_t ret;
char in_utf8[] = "姝e?ㄥ??瑁?";
char in_gb2312[] = "正在安装";
int src_len = strlen(in_utf8);
char szDest[64] = {''};
int dest_len = 64;
memset(szDest,'',64);
iconv_t conv;
conv = iconv_open("UFT-8","GB2312");
if (conv == (iconv_t)-1)
{
perror("iconv_open:");
return -1;
}
ret = iconv(conv,(char**)&in_utf8,&src_len,&szDest,&dest_len);
if (ret == -1)
{
perror("iconv:");
return -1;
}
printf("%srn",szDest);
iconv_close(conv);
return 0;
}
iconv_open 提示无效的参数是怎么回事? 我想把UTF8转成 GB2312
就是把LINUX下的默认编码转成WINDOWS可以显示的
|
conv = iconv_open("UFT-8","GB2312");
写反了吧
conv = iconv_open("GB2312","UFT-8");
iconv_t iconv_open (const char* tocode, const char* fromcode);
看看你的系统是否支持GB2312, 有的系统需要用GB18030
写反了吧
conv = iconv_open("GB2312","UFT-8");
iconv_t iconv_open (const char* tocode, const char* fromcode);
看看你的系统是否支持GB2312, 有的系统需要用GB18030
#include
#include
int main(int argc, char *argv[])
{
char utf8[] = "xe6xadxa3xe5x9cxa8xe5xaex89xe8xa3x85";
char gb2312[100];
char *inbuf;
size_t inleft;
char *outbuf;
size_t outleft;
size_t inlen;
size_t outlen;
iconv_t cd;
cd = iconv_open("GB18030", "utf-8");
if ((iconv_t)-1 == cd) {
perror("icnov_open");
exit(1);
}
inbuf = utf8;
inleft = strlen(utf8) + 1;
outbuf = gb2312;
outleft = sizeof(gb2312);
iconv(cd, &inbuf, &inleft, &outbuf, &outleft);
outlen = sizeof(gb2312) - outleft;
printf("%sn", gb2312);
return 0;
}
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。