乱码 iconv

C语言的函数可以如下:


//add by xuang 2006-05-24
//为了内码转换
//
  //代码转换:从一种编码转为另一种编码  
  int   code_convert(char   *from_charset,char   *to_charset,char   *inbuf,int   inlen,char   *outbuf,int   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);  
  //printf("inlen=%d/n",inlen);  
  if   (iconv(cd,pin,&inlen,pout,&outlen)==-1)   return   -1;  
  iconv_close(cd);  
  return   0;  
  }  
  //UTF-8码转为GB2312码  
  int   u2g(char   *inbuf,size_t   inlen,char   *outbuf,size_t   outlen)  
  {  
  //return   code_convert("UNICODE","gb2312",inbuf,inlen,outbuf,outlen);  
  return   code_convert("UTF-8","GB2312",inbuf,inlen,outbuf,outlen);  
  }  


  //UNICODE码转为GB2312码
   int   u2g1(char   *inbuf,size_t   inlen,char   *outbuf,size_t   outlen)  
  {  
  return   code_convert("UNICODE","gb2312",inbuf,inlen,outbuf,outlen);  
  //return   code_convert("UTF-8","GB2312",inbuf,inlen,outbuf,outlen);  
  }  
  //GB2312码转为UNICODE码  
  int   g2u(char   *inbuf,size_t   inlen,char   *outbuf,size_t   outlen)  
  {  
  return   code_convert("GB2312","UTF-8",inbuf,inlen,outbuf,outlen);  
  //return   code_convert("GB2312","UNICODE",inbuf,inlen,outbuf,outlen);  
  }  
//调用方法
//u2g(inputstr,strlen(inputstr),outputstr,255); 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值