博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux平台下 GBK编码转UTF-8编码
阅读量:6301 次
发布时间:2019-06-22

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

hot3.png

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

系统环境:MacMini

编译器:Xcode

游戏引擎:cocos2d-x

头文件:#include <iconv.h>

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

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

调用代码:

    char b[1024];

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

转载于:https://my.oschina.net/u/2276921/blog/529828

你可能感兴趣的文章
Android——4.2 - 3G移植之路之 APN (五)
查看>>
Linux_DHCP服务搭建
查看>>
[SilverLight]DataGrid实现批量输入(like Excel)(补充)
查看>>
秋式广告杀手:广告拦截原理与杀手组织
查看>>
翻译 | 摆脱浏览器限制的JavaScript
查看>>
闲扯下午引爆乌云社区“盗窃”乌云币事件
查看>>
02@在类的头文件中尽量少引入其他头文件
查看>>
JAVA IO BIO NIO AIO
查看>>
input checkbox 复选框大小修改
查看>>
BOOT.INI文件参数
查看>>
vmstat详解
查看>>
新年第一镖
查看>>
unbtu使用笔记
查看>>
OEA 中 WPF 树型表格虚拟化设计方案
查看>>
使用Gradle打RPM包
查看>>
“我意识到”的意义
查看>>
淘宝天猫上新辅助工具-新品填表
查看>>
再学 GDI+[43]: 文本输出 - 获取已安装的字体列表
查看>>
nginx反向代理
查看>>
ARM想将芯片装进人类大脑 降低能耗是一大挑战
查看>>