linux C gbk utf-8编码转换

来源:互联网 发布:java求质数的方法 编辑:程序博客网 时间:2024/04/30 08:01

最近从新浪开放IP接口上读取IP的归属地信息,结果发现读取过来的IP归属地信息是gbk编码,而数据库则是utf8编码,如果直接把gbk编码的信息写入到数据库,则出现乱码,所以必须在持续里把数据进行utf8编码转换,经网络搜索,找到如下方法


#include <iconv.h>    int code_convert(char *from_charset,char *to_charset,char *inbuf,size_t inlen,char *outbuf,size_t outlen)  {          iconv_t cd;          int rc;          char **pin = &inbuf;          char **pout = &outbuf;            cd = iconv_open(to_charset,from_charset);          if (cd==0)                  return -1;          memset(outbuf,0,outlen);          if (iconv(cd,pin,&inlen,pout,&outlen) == -1)                  return -1;          iconv_close(cd);          return 0;  }    int u2g(char *inbuf,int inlen,char *outbuf,size_t outlen)  {          return code_convert("utf-8","gb2312",inbuf,inlen,outbuf,outlen);  }    int g2u(char *inbuf,size_t inlen,char *outbuf,size_t outlen)  {          return code_convert("gb2312","utf-8",inbuf,inlen,outbuf,outlen);  }  


0 0
原创粉丝点击