日文游戏乱码码问题

  众所周知,Cocos2d-x是一款不错的开源引擎,但是在Cocos2d-x中直接使用中文是无法正确显示的。比如下面的情况:&
& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & &&
  解决这个问题常用的有三种方法:1.通过转换为UTF-8编码来显示。2.使用iconv库来解决。3。使用解析xml或者json文件来解决。这里推荐使用第三种方法来解决,因为比较简单方便,还能支持I18N国际化。下面我们来一一详细了解一下每种解决方案的具体实现:
一、通过转换为UTF-8编码的方式显示出来,建立一个方法用于转换中文到对应的UTF-8编码,具体代码如下:
1 char *HelloWorld::FontToUTF8(const char* font){
int len = MultiByteToWideChar(CP_ACP,0,font,-1,NULL,0);
wchar_t *wstr = new wchar_t[len+1];
memset(wstr,0,len+1);
MultiByteToWideChar(CP_ACP,0,font,-1,wstr,len);
len = WideCharToMultiByte(CP_UTF8,0,wstr,-1,NULL,0,NULL,NULL);
char *str = new char[len+1];
memset(str,0,len+1);
WideCharToMultiByte(CP_UTF8,0,wstr,-1,str,len,NULL,NULL);
if(wstr)delete[]
函数的使用方法如下:
1 auto label = Label::creat(HelloWorld::FontToUTF8("不如跳舞"),"Arial",36);
2 label-&setPosition(320,300);
3 this-&addChild(label);
这种方法仅仅依靠代码实现而不不需要额外的设置,但是效果并不是很稳定,容易产生某些错误或者依然乱码,因此不推荐该方法。
二、使用iconv库来显示中文
首先在创建好的cocos2d-x项目中搜索包含了iconv的文件名,然后把文件iconv.h的路径引入,如:
"cocos2d\external\win32-specific\icon\include\iconv.h"
然后在项目中创建一个GBKToUTF8方法来实现编码的转换:
1 int HelloWorld::GBKToUTF8(std::string &gbkStr,const char* toCode,const char* formCode){
iconv_t iconvH;
iconvH = iconv_open(formCode,toCode);
if(iconvH == 0){
return -1;
const char* strChar = gbkStr.c_str();
const char** pin = &strC
size_t strLength = gbkStr.length();
char *outbuf = (char*) malloc(strLength*4);
char *pBuff =
memset(outbuf,0,strLength*4);
size_t outLength = strLength*4;
if(-1 == iconv(iconvH,pin,&strLength,&outbuf,&outLength)){
iconv_close(iconvH);
return -1;
gbkStr = pB
iconv_close(iconvH);
函数的使用方法如下:
1 //在场景中加入中文标签
2 std::string hello = "不如跳舞";
3 GBKToUTF8(hello,"gb2312","utf-8");
4 CCLabelTTF *label1 = CCLabelTTF::create(hello.c_str(),"Arial",20);
5 label-&setPosition(320,250);
6 this-&addChild(label);
不过Android平台上的Cocos2d-x并没有提供相应的库,这就需要开发者自行将iconv库引入到项目中,然后编译。
由于前两种方法都比较复杂而且不稳定,因此推荐使用第三种方法(读取xml文件或者json文件的方法显示中文)。
三、读取外部xml或者Json文件显示中文
  1.xml方法
  使用xml解析中文十分的简单,首先我们需要准备一个xml文件。如下所示: 
&key&string1&/key&
&string&欢迎学习cocos2dx&/string&
&key&string2&/key&
&string&使用XML显示中文&/string&
&key&string3&/key&
&string&key与string标签中的内容是对应的&/string&
  在xml文件中,&key&和&string&两个标签要保持一一对应的关系。这样就可以通过对key标签中的内容索引到对应的中文内容,从而显示中文字符。
  需要注意的是保存此xml文件的时候编码格式要使用UTF-8(可以使用notepad++或者sublimeText之类的软件完成)。
  之后我们就可以解析xml文件来读取中文啦:
//创建词典类实例,将xml文件加载到词典中
auto *chnStrings = Dictionary::createWithContentsOfFile("CHN_Strings.xml");
//通过xml文件中的key获取value
const char *str1 = ((String*)chnStrings-&objectForKey("string1"))-&getCString();
//创建一个标签显示出来
auto* label1 = Label::create(str1, "Arial", 36);
label1-&setPosition(320,270);
addChild(label1);
const char *str2 = ((String*)chnStrings-&objectForKey("string2"))-&getCString();
auto* label2 = Label::create(str2, "Arial", 36);
label2-&setPosition(320, 180);
addChild(label2);
const char *str3 = ((String*)chnStrings-&objectForKey("string3"))-&getCString();
auto* label3 = Label::create(str3, "Arial", 36);
label3-&setPosition(320, 90);
addChild(label3);
  这样中文就可以正确的显示出来了。
  2.Json方法
&  Json的方法和xml大同小异,而且更简单,首先我们同样准备一个json文件,命名为language.json:
"start":"开始游戏",
"setting":"设置",
"exitGame":"退出游戏",
"info":"马三小伙儿",
"restart":"重新开始",
"win":"游戏胜利",
"returnMenu":"返回主菜单",
"bgMusic":"背景音乐",
"effectMusic":"音效音量"
  然后我们使用Jsoncpp库来读取json文件,jsoncpp可以到这里去下载:&。解压之后我们只需要保留其中的src\lib_json和
include\json下的文件,并将其放在项目的Classess\json目录下。或者图省事可以直接下载我这个配置好的&(提取码:40bb)。最后把json库导入到我们的cocos2d-x项目中。如图:
  为了方便使用和修改我们这里创建一个ReadJson类,这个类里面只有一个静态的std::string ReadJson::getString(std::string name)方法,用来读取json信息:
1 std::string ReadJson::getString(std::string name){
std::string data = FileUtils::getInstance()-&getStringFromFile("language.json");
if (reader.parse(data, root, false) == true)
return root[name].asCString();
  一步步解释一下函数中的内容:
  Json::Reader 这个类是用来解析json文件的;
  Json::Value & 这个类代表了json的一段数据;
  FileUtils::getInstance()-&getStringFromFile("language.json")&这个函数用来加载一个json文件,其返回值是一个字符串;
  调用reader(Json::Reader类型)的parse函数开始解析json文件,解析的结果会保存在root对象中(Json::Value类型),读取它的值很简单,就像普通的数组使用索引一样,比如root["id"]。然后还可以根据值的类型进行转换,例如:root["name"].asCString();
  我们直接在程序中直接调用这个类的静态函数就可以方便的读取json中的字段了。比如:
1 //开始游戏按钮
auto start_button = Button::create("button.png");
start_button-&setScale(2);
4 //调用ReadJson的getString()方法
start_button-&setTitleText(ReadJson::getString("start"));
start_button-&setTitleFontName("微软雅黑");
start_button-&setTitleFontSize(16);
start_button-&setPosition(Vec2(visibleSize.width / 2, visibleSize.height*0.7));
this-&addChild(start_button);
  这样中文也可以正常的显示出来了。
  总结上面的三种方法,无疑是第三种方法最方便和稳定了。而且使用解析xml或者json还有另外的优势就可以很方便地支持国际化。在游戏中设置一个语言选择按钮,然后根据选项来决定加载哪个xml或者json文件,这样可以很方便的快捷的切换游戏语言。
作者:马三小伙儿出处:/msxh/p/5588775.html
请尊重别人的劳动成果,让分享成为一种美德,欢迎转载。另外,文章在表述和代码方面如有不妥之处,欢迎批评指正。留下你的脚印,欢迎评论!
阅读(...) 评论()
友情链接:您的位置: >
> 游戏乱码修正工具(Microsoft AppLocale) 简体中文版
游戏乱码修正工具(Microsoft AppLocale) 简体中文版
软件大小:1.33M
软件语言:简体中文
软件类型:国外软件
软件授权:免费软件
更新时间:
软件类别:游戏辅助
软件官网:/
应用平台:Win2003, WinXP, Win2000
网友评分:7.9分
微软推出的多语言支持工具,可以让非Unicode的软件在Windows&XP/2003上运行,即可以同时执行简繁体日文等软件。使用方法:第一步:下载,解压,***。第二步:点击程序,选择Microsoft&AppLocale,在选择AppLocale。第三步:应用顺序如下:下一步~~选择启动应用程序~~浏览~~选择游戏启动程序~~打开~~下一步~~选择语言(一般为繁体或简体)~~下一步~~完成
游戏乱码修正工具(Microsoft AppLocale) 简体中文版
高速下载通道
其它下载地址
感谢您对多多软件的信任,请把这份信任分享给您的朋友!
您的评论需要经过审核才能显示!
软件排行榜
13.7M / 简体中文 /8.7分
927K / 简体中文 /8分
71K / 简体中文 /8.4分
46.4M / 简体中文 /7.7分
9.38M / 简体中文 /8分
10.9M / 简体中文 /8分
13.7M / 简体中文 /8.1分
2.17M / 简体中文 /8.1分
33.2M / 简体中文 /8.3分
675K / 简体中文 /7.9分
Copyright (C)
. All rights reserved.您当前的位置: -&
-& 游戏乱码修正大师:修复游戏中文字出现乱码问题 V1.3 绿色版
· · · · · · · · · · · ·
游戏乱码修正大师:修复游戏中文字出现乱码问题 V1.3 绿色版
国产软件/游戏工具/绿色软件
Win9X/2000/XP/Win2003
游戏乱码修正大师:修复游戏中文字出现乱码问题 软件简介:
这个《游戏乱码修正大师》可用来快速的帮您解决修复游戏中文字出现乱码问题!游戏乱码一般在玩单机游戏的时候经常遇见吧?这么好的游戏出现乱码,真是有些瑕疵特让人不爽,游戏乱码修正大师!可以帮您解决问题哦!
游戏乱码修正大师可以在Windows 2000/XP 中文版下将显示为乱码的中文游戏修正为可识别的中文!
马上点击进入 游戏乱码修正大师:修复游戏中文字出现乱码问题 V1.3 绿色版 下载页
与“游戏乱码”相关的软件:
网友评论 &&(评论内容只代表网友观点,与本下载站立场无关!,本站只提供软件免费下载!)
Copyright &
偶要下载() All Rights Reserved
鲁ICP备号 - QQ:832469 mail: 下载中...
中国提供的所有软件均来自互联网,下载个人纯属学习交流之用,如有侵犯您的版权请与我联系,我们会马上改正请在下载24小时内删除!win7系统下运行日产游戏出现乱码_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
win7系统下运行日产游戏出现乱码
上传于||文档简介
&&系​统​之​家
大小:110.00KB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢 |  |  | 
您所在的位置: >
> NTLEA 游戏软件乱码修复工具 V0.95
NTLEA 游戏软件乱码修复工具 V0.95
一个区域及内码转换软件
软件类别:/
软件语言:
相关链接:
软件大小:206.75 KB
运行环境:Vista/winXP/win7/win8
软件评级:
更新时间:
手机扫一扫下载
最新绿色无毒无插件的cf刷***软件
穿越火线军衔游戏修改器
绿色免费的cf刷***辅助工具
QQ飞车刷车
利用bug技术原理成功突破腾讯漏洞
最新攻略资讯
NTLEA (NT Locale Emulator Advance),是一个区域及内码转换软件。专门用来解决游戏或软件乱码。尤其是喜欢玩日语游戏的小盆友们可以注意了。
使用方法:
找到 NtleaGUI.exe,在勾选 自动接管.EXE 之后,添加一些你需要用到的一些语言,点击*** (其实是***右键菜单)
最上面会显示 已*** 然后点确定就好了 如图显示。。
XP用户可以直接 右键 点击 游戏的执行程序exe 选择 ntlea 这样就可以运行了。。
VISTA 和windows 7用户这时候会遇到一点点麻烦。
***的时候,请使用 右键以管理员身份运行 ***完成确定退出,这时候右键会出现那个ntlea菜单,但是这个是没有用的。。
请找到***目录下面 ntleac.exe 运行,会提示 &选择exe文件,这时候你就可以选择你的 游戏程序执行 了。
目前 NTLEA 对于以下情况尚无法处理:
1、需要启动第二个程序的(如 Loader ),可能无法 HOOK
2、RPG Maker XP 的游戏无法使用。
3、如果出现了无法启动任何exe之类的严重问题,请双击来紧急卸载
4、如果系统开启了UAC,那么***和卸载、以及设置是否自动托管.exe文件的时候,需要右键选择“以管理员身份运行”,其他时候不需要。
更新日志:
NTLEA Core & GUI 0.92 & &by magami
1、修正快捷方式的右键菜单所有选项失效的问题
2、修正了开启UAC的环境下无法以管理员身份使用卸载的问题
NTLEA Core & GUI 0.91b & &by magami
1、因为.bat批处理文件还是无法干净的卸载程序,于是把紧急卸载程序改为了
2、修正了0.91a在winXP下会导致窗口卡死CPU占用100%的情况,已经出了问题的请先运行新的卸载一次
NTLEA Core & GUI 0.91a & &by magami
修正『通常模式』的一个BUG,大幅提升了兼容性
现在穢翼のユースティア、神採りアルケミーマイスター(包括防弹窗补丁)等都能使用默认的通常模式直接启动了
NTLEA Core & GUI 0.91 & &by magami
1、自动接管.exe的启动改为了可选选项,在非托管的情况下,选择.exe文件右键菜单中的 ntlea 为使用预选或自动识别的语言来启动程序
2、修正了64位系统下无法正常***的问题
3、修正了右键启动路径中含有空格的文件时异常报错的问题
4、修正了右键无法以预设语言启动非执行文件的问题
5、提高了兼容性,支持更多的程序了
6、启动文件分为了高兼容性的『通常模式』(默认)与针对特殊程序使用的『强制模式』两种模式,当通常『通常模式』无法正常启动文件时请尝试在文件区域设置界面中选择『强制模式』
注意:如果系统开启了UAC,那么***和卸载、以及设置是否自动托管.exe文件的时候,需要右键选择“以管理员身份运行”,其他时候不需要
NTLEA Core & GUI 0.90 & &by magami
主要为了解决VISTA和win7下的兼容问题而更新,使用了.net 3.5重写了GUI
支持64位操作系统下的32位程序,但不支持64位程序
如果winXP系统用户要使用,需要***.net framework&3.5
新增特性: 1、双击exe会自动判断是否采用NTLEA加载程序
2、能自动识别exe语言(可能会误判,误判大多发生在汉化的程序或游戏),也就是说多数情况下不用设置NTLEA,直接双击要启动的程序就可以了
3、如果误判或无法自动识别,请使用右键菜单 NTLEA-&创建或修改"xxx"的区域语言设置 来设置exe的语言,设置后会在当前目录生成一个和exe同名的.ntconfig文件,以后双击这个exe就会以设置的语言来运行了,此功能只会出现在exe文件的右键菜单中
4、右键菜单中的 在指定语言区域中加载 "xxx"... 为临时的打开方式,不会影响下次双击启动的语言,此菜单的下级菜单中能选择的语言列表请直接运行NtleaGUI.exe来管理
5、如果路径中有所选择的语言不支持的字符,会自动提示
6、若要不托管给NTLEA,直接启动程序,请单击右键菜单里的 打开(O)
7、界面语言为自动识别当前系统的语言,如果没有找到对应当前系统语言的语言文件则会加载en-us.xml,如果也没有找到en-us.xml则会启用内置的语言。要增加界面语言,请按照其他语言文件的格式编写好语言文件后放入Language目录,文件命名规则为 "语言代号缩写-国家代号缩写.xml"
重要:如果出现了无法启动任何exe之类的严重问题,请双击Uninstall.bat来紧急卸载
NTLEA 游戏软件乱码修复工具V0.95图片(1/1)
,软件? 软件下载后?飞翔小编十二分诚意等待着您的投诉与建议
APK文件怎么打开,下载APK文件如何***到手机?推荐使用
软件无法下载
下载后无法使用
与描述不一致

参考资料

 

随机推荐