cocos2d-x项目在wp8下中文显示不了。有两个原因:

1. 本身字符串的utf8编码, 有问题。

2. 显示中文所须要的字体,缺失。

要解决第二个问题非常easy,在fonts下加入一个中文字体。在显示的时候制定此中文字体

labelArcade = CCLabelTTF::create("中文字符串", "中文字体名称",字体大小);

至于第一个问题,说的是不能像上文那样直接用字符串写“中文字符串”,解决方式有gb2312ToUnicode的方法,小转换一下子。百度一搜有非常多演示样例代码,恕不赘言,由于这样的办法并非太好--总是要做多语言的嘛。我们本来也不会直接写上中文字符串在那里。

所以。我们建一个文件。专门放置中文字符(还有对应的专门放置英语、法语、西班牙语的文件),然后通过读取文件的方式,读过来的字符串自然已经utf8编码过:

labelArcade = CCLabelTTF::create(localizeUtil::getLocalizeStringByKey("mode_arcade"), localizeUtil::getLocalizeFontName(), localizeUtil::getFontSizeH2());

另附localizeUtil的实现:

localizeUtil.h

class localizeUtil
{
public:
static bool init();
static const char* getLocalizeStringByKey(std::string key);
static const char* getLocalizeFontName();
static const float getFontSizeH1();
static const float getFontSizeH2();
static const float getFontSizeH3();
static const float getFontSizeH4();
static const float getFontSizeH5();
};

localizeUtil.cpp

#include "localizeUtil.h"
#include "cocos2d.h" USING_NS_CC; static char* fontName;
static char* fontNameChinese;
static char* fontNameEnglish; static char* languageMappingFolder; static char* resourcePath; const char* localizeUtil::getLocalizeStringByKey(std::string key)
{
CCDictionary *chnStrings = CCDictionary::createWithContentsOfFile(resourcePath);
const char *value = ((CCString*)chnStrings->objectForKey(key))->getCString();
return value;
} const char* localizeUtil::getLocalizeFontName()
{
return fontName;
} const float localizeUtil::getFontSizeH1()
{
return 50;
}
const float localizeUtil::getFontSizeH2()
{
return 40;
}
const float localizeUtil::getFontSizeH3()
{
return 30;
}
const float localizeUtil::getFontSizeH4()
{
return 20;
}
const float localizeUtil::getFontSizeH5()
{
return 16;
}
bool localizeUtil::init()
{ fontNameChinese = "SimpleGB2312";
fontNameEnglish = "Arial"; resourcePath = "local/s%/strings.xml"; const char* lc = CCApplication::getInstance()->getCurrentLanguageCode(); ccLanguageType currentLanguageType = Application::getInstance()->getCurrentLanguage();
switch (currentLanguageType)
{
case kLanguageChinese:
fontName = fontNameChinese;
languageMappingFolder = "zhcn";
resourcePath = "local/zhcn/strings.xml";
break;
case kLanguageEnglish:
fontName = fontNameEnglish;
languageMappingFolder = "enus";
resourcePath = "local/enus/strings.xml";
break;
case kLanguageSpanish:
fontName = fontNameEnglish;
languageMappingFolder = "es";
resourcePath = "local/es/strings.xml";
break;
case kLanguageFrench:
fontName = fontNameEnglish;
languageMappingFolder = "fr";
resourcePath = "local/fr/strings.xml";
break;
default:
fontName = fontNameEnglish;
languageMappingFolder = "enus";
resourcePath = "local/enus/strings.xml";
} return true;
}

文件夹结构:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveXVubnlpbmc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast">

strings.xml

<dict>
<key>mode</key>
<string>Mode</string>
<key>mode_classic</key>
<string>Classic</string>
</dict>

cocos2d-x wp8 中文显示问题的更多相关文章

  1. Learning Cocos2d-x for WP8(4)——中文显示

    原文:Learning Cocos2d-x for WP8(4)--中文显示 C#(wp7)兄弟篇Learning Cocos2d-x for XNA(4)——中文显示 Cocos2d-x中文显示,似 ...

  2. 【python之路2】CMD中执行python程序中文显示乱码

    在IDLE中执行下面代码,中文显示正常: # -*- coding:utf-8 -*- st=raw_input("请输入内容")print st 但在CMD中执行e:\hello ...

  3. Linux中文显示乱码?如何设置centos显示中文

    Linux中文显示乱码?如何设置centos显示中文 怎么设置Linux系统中文语言,这是很多小伙伴在开始使用Linux的时候,都会遇到一个问题,就是终端输入命令回显的时候中文显示乱码.出现这个情况一 ...

  4. [django]Django站点admin支持中文显示和输入设置

    正文: Django站点admin支持中文输入设置,操作如下: 1 需要确定的你的数据库的client客户端和服务端的编码设置为utf-8,如果不是,请将其设置成utf-8编码,我采用mysql,详情 ...

  5. Xshell个性化设置,解决Xshell遇到中文显示乱码的问题

    在同事的推荐下,今天开始使用Xshell连接Linux,但是发现一个“遇到中文显示乱码”的问题, 同事的解决方案如下: 平常给Linux上传文件之前,先把文件转换成UTF-8编码形式, 然后设置Xsh ...

  6. python中matplotlib画折线图实例(坐标轴数字、字符串混搭及标题中文显示)

    最近在用python中的matplotlib画折线图,遇到了坐标轴 "数字+刻度" 混合显示.标题中文显示.批量处理等诸多问题.通过学习解决了,来记录下.如有错误或不足之处,望请指 ...

  7. (转)sqlplus中文显示乱码的问题

    sqlplus中文显示乱码的问题 2010-07-19 11:33:26 分类: LINUX 在windows下sqlplus完全正常,可是到linux下,sqlplus中文显示就出问题了,总是显示“ ...

  8. wkhtmltopdf中文显示空白或者乱码方框

    中文乱码或者空白解决方法 如果wkhtmltopdf中文显示空白或者乱码方框 打开windows c:\Windows\fonts\simsun.ttc拷贝到linux服务器/usr/share/fo ...

  9. 在WCF数据访问中使用缓存提高Winform字段中文显示速度

    在我们开发基于WCF访问方式的Winform程序的时候,一般情况下需要对界面显示的字段进行中文显示的解析.如果是硬编码进行中文显示,那么除了不方便调整及代码臃肿外,性能上没有什么问题,但是不建议这样处 ...

随机推荐

  1. CSS3-弹性盒模型-FlexBox

    Flex容器属性 display 定义一个Flex容器,根据其取的值来决定是内联还是块.Flex容器会为其内容建立新的伸缩格式化上下文. .container { display: flex; /* ...

  2. Flask 系列之 构建 Swagger UI 风格的 WebAPI

    说明 操作系统:Windows 10 Python 版本:3.7x 虚拟环境管理器:virtualenv 代码编辑器:VS Code 实验 环境初始化 # 创建项目目录 mkdir helloworl ...

  3. appIcon

    原文地址:https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/MobileHIG/IconM ...

  4. 与LCD_BPP相关的函数

    board/freescale/mx6q_sabresd/mx6q_sabresd.c:    panel_info.vl_bpix = LCD_BPP; common/lcd.c:   off  = ...

  5. Java中IO流讲解(一)

    一.概念 IO流用来处理设备之间的数据传输 Java对数据的操作是通过流的方式 Java用于操作流的类都在IO包中 流按流向分为两种:输入流,输出流 流按操作类型分为两种: 字节流 : 字节流可以操作 ...

  6. python库——h5py入门讲解

    本文只是简单的对h5py库的基本创建文件,数据集和读取数据的方式进行介绍,作者刚接触h5py,完全靠看文档自学,如果哪里说的不对,欢迎纠正!如果读者需要进一步详细的学习h5py的更多知识,请参考h5p ...

  7. C#上位机开发(二)—— Hello,World

    上一篇大致了解了一下单片机实际项目开发中上位机开发部分的内容以及VS下载与安装,按照编程惯例,接下来就是“Hello,World!” 1.新建C#项目工程 首先选择新建Windows窗体应用(.NET ...

  8. Python基础之字符编码,文件操作流与函数

    一.字符编码 1.字符编码的发展史 阶段一:现代计算机起源于美国,最早诞生也是基于英文考虑的ASCII ASCII:一个Bytes代表一个字符(英文字符/键盘上的所有其他字符),1Bytes=8bit ...

  9. Delphi第三方控件安装卸载指南

    基本安装1.对于单个控件,Componet-->install component..-->PAS或DCU文件-->install; 2.对于带*.dpk文件的控件包,File--& ...

  10. windows phone 网络开发三部曲(一)各种包的各种抓法

    首先感谢大家对我上一篇博客的支持,让我也体验了一把上榜的感觉. 这无疑是对我这个刚刚打算,认真写写博客的人的莫大的鼓励,再次感谢(鞠躬)!! 接下来想和大家分享一些关于windows phone网络开 ...