c++中的转码函数

iconv_open函数

iconv_open——申请一个字符集转换的描述符

#include <iconv.h>

iconv_t iconv_open(const char* tocode,const char* fromcode)

描述:

iconv_open()函数申请一个转换描述符,转换字符序列从编码fromcode到编码tocode

转换描述符包含转换状态,调用iconv_open创建以后,转换状态处于初始状态,调用iconv函数以后改变转换描述符的转换状态,(意味着转换描述符不能在多线程中同时使用)

返回值:

iconv_open函数返回一个新申请的转换描述符,出错时,返回(iconv_t)-1;

int code_utf8_gbk(char *inbuf,size_t inlen,char *outbuf,size_t outlen)  
{  
        iconv_t cd;  
        int rc;  
        char **pin = &inbuf;  
        char **pout = &outbuf;  
  
        cd = iconv_open("GBK","UTF8");              //第一步先确定编码格式,返回转换描述符
        if (cd==0)  
             return -1;  
        memset(outbuf,0,outlen);  
        if (iconv(cd,pin,&inlen,pout,&outlen) == -1)  //第二部把想要转化的字符串pin和想要输出的字符串pout放到刚刚申请的转换描述符中中进行转换
             return -1;  
        iconv_close(cd);                             //关闭描述符
        return 0;  
}

<span style="font-family:Times New Roman;">int main()
{
               char buf[256]="你好";
               char buff[256]="";

               code_utf8_gbk(buf,1024,buff,1024);    //调用函数
}
</span>

 
如果遇到了一些问题,可以自行进行(char *)转换。

不管什么编码格式,只要把编码格式和想要的格式填入函数就可以了

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值