一共需要三步:
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;
}
本文永久更新地址://m.ajphoenix.com/linux/23491.html