linux 中文utf-8转gbk编码,Linux平台下 GBK编码转UTF-8编码
发布日期:2021-06-24 11:19:57 浏览次数:4 分类:技术文章

本文共 961 字,大约阅读时间需要 3 分钟。

在写cocos的时候需要解析一个文件,但是文件是GBK编码方式,而cocos默认是使用UTF-8所以需要转码,这是在网上找到的代码,但是原本的不能用,这我修改过的。

系统环境:MacMini

编译器:Xcode

游戏引擎:cocos2d-x

头文件:#include

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);

}

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

调用代码:

charb[1024];

this->g2u(buff,1024,b,1024);

原文:http://my.oschina.net/u/2276921/blog/529828

转载地址:https://blog.csdn.net/weixin_32467421/article/details/116771726 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:linux安装软件在boot,在Linux系统上安装Spring boot应用的教程详解
下一篇:linux设备管理命令,Linux命令(设备管理).doc

发表评论

最新留言

感谢大佬
[***.8.128.20]2024年04月02日 00时24分46秒