把要显示的文字放在一个头文件中,用记事本打开保存为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 添加到层中显示
上图