Cocos输出中文字符
2016-01-08 11:58
435 查看
Cocos在直接输出中文的情况下会出现乱码的情况,下面给大家介绍一种很简单的方式来正确输出中文,使用iconv库。本版本的cocos是3.2。
直接在你的项目中创建如下一个类:
将这些代码带你的工程中不用管什么意思,直接可以使用该类来输出中文字符,如下使用:
很简单,很方便。
直接在你的项目中创建如下一个类:
#ifndef _TOOLS_ #define _TOOLS_ #include "cocos2d.h" using namespace cocos2d; class Tools{ public: static int code_convert(const char *, const char *, const char *, size_t, char*, size_t); static std::string a2u(const char *); }; //cpp #include "Tools.h" //注意这里包含的路径,也许版本不同iconv库的路径不同 #include "D:\cocosproject\plane\cocos2d\external\win32-specific\icon\include\iconv.h" USING_NS_CC; int Tools::code_convert(const char *from_charset, const char *to_charset, const char *inbuf, size_t inlen, char *outbuf, size_t outlen) { iconv_t cd; const char *temp = inbuf; const char **pin = &temp; char **pout = &outbuf; memset(outbuf, 0, outlen); cd = iconv_open(to_charset, from_charset); if (cd == 0) return -1; #if (CC_TARGET_PLATFORM==CC_PLATFORM_ANDROID) if (iconv(cd, (char **)pin, &inlen, pout, &outlen) == -1) return -1; #elif (CC_TARGET_PLATFORM==CC_PLATFORM_WIN32) if (iconv(cd, pin, &inlen, pout, &outlen) == -1) return -1; #endif iconv_close(cd); return 0; } std::string Tools::a2u(const char *inbuf) { size_t inlen = strlen(inbuf); char * outbuf = new char[inlen * 2 + 2]; std::string strRet; if (code_convert("gb2312", "utf-8", inbuf, inlen, outbuf, inlen * 2 + 2) == 0){ strRet = outbuf; } delete[] outbuf; return strRet; } #endif
将这些代码带你的工程中不用管什么意思,直接可以使用该类来输出中文字符,如下使用:
//调用Tool类的a2u函数。 m_pttext = LabelTTF::create(Tools::a2u("你好世界 ").c_str(), "Arial", 24);
很简单,很方便。
相关文章推荐
- cocos2d-x 精灵的创建和基本使用
- cocos2d-x源码
- 安装、配置、部署Cocos2d-x
- cocos2d-3.8.1版本tableview的使用(怎么取消弹簧效果);
- COCOS学习笔记--坐标系统与坐标系转换
- Cocos2d-x利用jni调用java层代码
- cocos jpg alpha_mask png
- cocos2d-x Undefined symbols for architecture x86_64 when porting iOS app in Xcode? 问题的解决
- Cocos2d-x环境搭建
- 关于Can't find Class org.cocos2dx.cpp.AppActivity的解决
- Cocos2d-x 多分辨率适配完全解析
- libuv在cocos2d-x中的使用
- COCOS学习笔记--Cocod2dx内存管理(三)-Coco2d-x内存运行原理
- Mac平台的Cocos2dx开发环境搭建
- 23.cocos2d-x骨骼动画
- cocos2dx-Lua中关于Lua和Java的互相操作的解决方案
- cocos2d-lua里float 转 int
- 21.cocos2d-x小鱼Sprite3D
- cocos2d-js动画的播放的2种方式
- cocos2d-x游戏开发 跑酷(九) 源代码下载及小结