红联Linux门户
Linux帮助

linux下iconv编码转换的用法

发布时间:2016-08-21 09:45:10来源:linux网站作者:陆守民
一共需要三步:
 
1.iconv_t iconv_open(const char *tocode, const char *fromcode);    //用这个函数获得句柄(iconv类型的返回值) 参数:tocode是转换后的编码类型,fromcode是转换前的编码类型。
编码类型有很多根据自己实际需要填参数。
 
2.size_t iconv(iconv_t cd,char **inbuf,size_t *inbytesleft,char **outbuf,size_t *outbytesleft);    //使用这个函数就可以进行转换 参数:cd就是第一个函数获得的句柄,inbuf是转换前的字符串,inbytesleft是转换前字符串长度,outbuf是用来存放转换后的字符串,outbytesleft是用来存放转换后字符串的长度
 
3.int iconv_close(iconv_t cd);    //释放资源
 
举个例子:
如题:把  utf8编码的“北京天安门” 转换为 gb2312编码的“北京天安门”
int main()
{
char buf[20] = "北京天安门";
int buflen = sizeof(buf); 
char buffer[20];
int bufferlen;
iconv_t cd;
cd = iconv_open("GB2312", "UTF-8");    //这里就是想要转换的编码类型,例中是UTF-8 -> GB2312
iconv(cd, &buf, &buflen, &buffer, &bufferlen);
iconv_close(cd);
return 0;
}
 
本文永久更新地址:http://www.linuxdiyf.com/linux/23491.html