Cocos2d-x 对于中文的支持-----iconv库

php中文网
发布: 2016-06-07 15:19:16
原创
1633人浏览过

http://momowing.diandian.com/post/2013-01-16/40047183777 Jetion: 我们在win32下创建类的时候,文件都是默认的ANSI的式,如果你使用了中文,那么你在win32下就会看到乱码。当然,移植Android的时候,你把文件式改为UTF-8即可。 但是为了方便win32下的调试

http://momowing.diandian.com/post/2013-01-16/40047183777

Helplook
Helplook

免费快速搭建帮助中心/知识库/博客,支持基于文档的GPT智能搜索回答

Helplook 92
查看详情 Helplook

Jetion:

我们在win32下创建类的时候,文件都是默认的ANSI的格式,如果你使用了中文,那么你在win32下就会看到乱码。当然,移植Android的时候,你把文件格式改为UTF-8即可。 但是为了方便win32下的调试,也为了省事点,我们需要一种方法能直接在win32和Android下显示中文的,这时候我们就需要用到iconv库的,cocos2d-x自带第三方库iconv。 在需要用到的地方,我们只要这么声明就可以: 1 2 #include "platform\third_party\win32\iconv\iconv.h" #pragma comment(lib,"libiconv.lib") 或者在VS中这么处理: 当然还是得加上 1 #include "platform\third_party\win32\iconv\iconv.h" 这样子你就能引用cocos2d-x中自带的iconv库了。 但是当你移植到Android的时候,也许你正在使用cygwin编译,然后发现它报了: convert_open等方法没找到的错误,因为Android手机上面是不带这个库的,所以你没法找到相关的方法。 这时候我能想到的就是自己去搞一个iconv库来编译到Android上面使用了。 首先:你要去网上下一个iconv库,这边我给出我用的iconv库,虽然不能保证都能用,但是至少我在Android2.3上面是没问题的。下载链接 或许你也可以在网上找到合适的iconv库。 其次:把iconv库解压放到cocos2d-x的根目录下 然后:修改你Android的mk。这里也给出mk的添加代码,如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../../HelloWorld/proj.win32 \ $(LOCAL_PATH)/../../../HelloWorld/Classes  \  $(LOCAL_PATH)/../../../iconv \             $(LOCAL_PATH)/../../../iconv/include \             $(LOCAL_PATH)/../../../iconv/libcharset \             $(LOCAL_PATH)/../../../iconv/libcharset/lib \             $(LOCAL_PATH)/../../../iconv/libcharset/include                                LOCAL_WHOLE_STATIC_LIBRARIES := iconv cocos2dx_static cocosdenshion_static cocos_extension_static                            include $(BUILD_SHARED_LIBRARY)                $(call import-module,CocosDenshion/android) \ $(call import-module,cocos2dx) \ $(call import-module,extensions) \ $(call import-module,iconv) 最后:给出转换为UTF-8的格式的代码,如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 intDataController::code_convert( constchar *from_charset, constchar *to_charset, constchar *inbuf, size_tinlen, char*outbuf, size_toutlen ) {     iconv_t cd;     constchar *temp = inbuf;     constchar **pin = &temp;     char**pout = &outbuf;     memset(outbuf,0,outlen);     cd = iconv_open(to_charset,from_charset);     if(cd==0)return-1;     if(iconv(cd,pin,&inlen,pout,&outlen)==-1)return-1;     iconv_close(cd);     return0; } /*UTF8 To GB2312*/ string DataController::u2a( constchar *inbuf ) {     size_tinlen = strlen(inbuf);     char* outbuf = newchar[inlen * 2 + 2];     string strRet;     if(code_convert("utf-8","gb2312", inbuf, inlen, outbuf, inlen * 2 + 2) == 0)     {         strRet = outbuf;     }     delete[] outbuf;     returnstrRet; } /*GB2312 To UTF8*/ //使用中文时用该函数转换 string DataController::a2u( constchar *inbuf ) {     size_tinlen = strlen(inbuf);     char* outbuf = newchar[inlen * 2 + 2];     string strRet;     if(code_convert("gb2312","utf-8", inbuf, inlen, outbuf, inlen * 2 + 2) == 0)     {         strRet = outbuf;     }     delete[] outbuf;     returnstrRet; }   PS: 链接无法直接点击下载的话,请使用右键->迅雷下载
最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号