Linux平台下 GBK编码转UTF-8编码

在写cocos的时候须要解析一个文件,可是文件是GBK编码方式,而cocos默认是使用UTF-8因此须要转码,这是在网上找到的代码,可是本来的不能用,这我修改过的。
this

系统环境:MacMini编码

编译器:Xcodespa

游戏引擎:cocos2d-xcode

头文件:#include <iconv.h>orm

int Rf4FileDecode::code_convert(char *from_charset,char *to_charset,char *inbuf,int inlen,char *outbuf,int outlen)
{
    iconv_t cd;
    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,(size_t*)&inlen,pout,(size_t*)&outlen) == -1)
        return -1;
    iconv_close(cd);
    return 0;
}

int Rf4FileDecode::u2g(char *inbuf,int inlen,char *outbuf,int outlen)
{
    return code_convert((char*)"utf-8",(char*)"gb2312",inbuf,inlen,outbuf,outlen);
}

int Rf4FileDecode::g2u(char *inbuf,size_t inlen,char *outbuf,size_t outlen)
{
    return code_convert((char*)"gb2312",(char*)"utf-8",inbuf,(int)inlen,outbuf,(int)outlen);
}

调用的时候 原编码字符串最好跟新编码字符串区分开为两个而不是转码后直接保存到原来的缓冲区。游戏

调用代码:utf-8

    char b[1024];字符串

    this->g2u(buff,1024,b,1024);编译器

相关文章
相关标签/搜索