使用cocos2dx 在android设备上显示中文

来源:互联网 发布:it程序员工资一般多少 编辑:程序博客网 时间:2024/06/05 00:13

把要显示的文字放在一个头文件中,用记事本打开保存为utf8格式。再打包上真机就不会乱码

如果要做win32下调试显示就定义一个宏开关

#ifndef _DEF_H_#define _DEF_H_//#define _COCOS2DX_WIN32_ //win32下使用icovnlib转换中文#ifdef _COCOS2DX_WIN32_#define UTEXT(str) GBKToUTF8(str,"gb2312","utf-8")#else#define UTEXT(str) str#endif#ifdef _COCOS2DX_WIN32_#include "iconv.h"static int GBKToUTF8(std::string & gbkStr, const char* toCode, const char* fromCode){iconv_t iconvH;iconvH = iconv_open(fromCode, toCode);if (iconvH == 0){return -1;}const char* strChar = gbkStr.c_str();const char** pin = &strChar;size_t strLength = gbkStr.length();char* outbuf = (char*) malloc(strLength*4);char* pBuff = outbuf;memset( outbuf, 0, strLength*4);size_t outLength = strLength*4;if (-1 == iconv(iconvH, pin, &strLength, &outbuf, &outLength)){iconv_close(iconvH);return -1;}gbkStr = pBuff;iconv_close(iconvH);return 0;}#else#include "StringRes.h"#endif#endif


#ifndef  _STRINGRES_H_#define  _STRINGRES_H_#include "Head.h"//要android设备上显示中文需要把此文件转换成utf8+bom格式static const std::string testString = UTEXT("这是一个测试样例");#endif

然后用CCLabelTTF 添加到层中显示


上图




原创粉丝点击