- 1、本文档共5页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
cocos2d-x显示中文的问题现在许多人都选择使用COCOS2D-X作为2D游戏引擎开发跨平台的智能手机游戏,有些朋友主要从苹果向WINDOWS平台转换;另外一部分则是相反地方向。无论如何,都面对一个中文的问题-除非你不做中文版本。且看后者,这其中的大多数用户都是基于WINDOWS+VS平台先编译WIN32版本的COCOS2D-X游戏,再基于ECLIPSE等平台编译,最后再安装到手机上。本人探讨的是,在VS2010+WINDOWS7下如何显示中文的问题(当然,也有一个在将来的手机平台的显示问题)。先看下面的转载文章
//我在WIN32开发是这样解决的.
#ifdef WIN32
#define UTEXT(str) GBKToUTF8(str)
#else
#define UTEXT(str) str
#endif
#ifdef WIN32
#include "third_party/win32/iconv/iconv.h"
static char g_GBKConvUTF8Buf[5000] = {0};
const char* GBKToUTF8(const char *strChar)
{
iconv_t iconvH;
iconvH = iconv_open("utf-8","gb2312");
if (iconvH == 0)
{
return NULL;
}
size_t strLength = strlen(strChar);
size_t outLength = strLength<<2;
size_t copyLength = outLength;
memset(g_GBKConvUTF8Buf, 0, 5000);
char* utbuf = (char*) malloc(outLength);
char* pBuff = outbuf;
memset( outbuf, 0, outLength);
if (-1 == iconv(iconvH, &strChar, &strLength, &outbuf, &outLength))
{
iconv_close(iconvH);
return NULL;
}
memcpy(g_GBKConvUTF8Buf,pBuff,copyLength);
free(pBuff);
iconv_close(iconvH);
return g_GBKConvUTF8Buf;
}
#endif
//使用的时候酱紫
CCLabelTTF* pLabel = CCLabelTTF::labelWithString(UTEXT("开始游戏"), "Arial", 24);
//仅供参考...
//PS:这样处理以后文件不必改成utf-8无签名编码了.
另外的问题,请查看:
原文:/cocos2d-x/archive/2012/02/26/2368873.html
很高兴你来到我的博客,同时也要感谢你对cocos2d-x引擎的支持。不过,既然你在这个时候来到这里,那八成是因为你遇到了麻烦——在你的cocos2d-x应用中,中文的显示似乎不太正常。
虽然cocos2d-x是一个跨平台的2D游戏引擎,但是目前我只使用VC在Win32平台下学习她。如果你是在其他平台上做开发,那么这篇文章对你可能没有太大帮助,我建议你阅读cocos2d-x的代码,找出问题的关键,从而定制一个可行的解决方案。
作为一名初学者,你必定像我一样跟着教程将代码敲进编辑器里,保存,编译,运行。却惊奇地发现中文字符串要么不显示了,要么显示成了乱码。心里想着,天啊,什么地方出问题了。然后打开百度、谷歌,有哪些信誉好的足球投注网站“cocos2d-x中文”。于是你找到了解决方案,要把文件保存为“无签名的UTF-8”编码。(这是最终可行的方案吗???-NONONO)
按照上面的方法操作,编译,运行,这时你已经可以看到中文字符显示正常了。如果你还有别的什么重要的事情要做,没有时间听我在这里废话,那么你现在就可以点击窗口上的叉叉离开了。
。。。。。。
咳咳。。。
你还在这里?你还想听听为什么会这样吗?
额。。。好吧,那我就简单说一下。以创建一个label为例,当我们使用
CCLabelTTF * CCLabelTTF::labelWithString(const char *label, const char *fontName, float fontSize)
来创建label的时候,实际上这里的const
文档评论(0)