最近使用CEGUI做界面碰到无法显示中文问题,百度,谷歌了一下,搜到不少方法,着实让我兴奋了一下(不用自己想了:-)),但真正去做的时候发现很是有问题,大部分的方法都不能正确的解决,基本是都“短斤缺两”,无奈,只能站在巨人的肩膀上自己摸索了,经过两个小时的努力,终于在晚饭把问题解决了,高兴之余记下解决方法,长征路上留个“脚印”。

第一步,要显示中文,就必须有中文字体,这个很容易就可以得到,在C:\WINDOWS\Fonts目录下就可以找到,在这儿我使用的是仿宋体(simfang.ttf),找到以后将它复制到..\OgreSDK\media\fonts目录中。OK,第一步完工:-)。

第二步,光有字体还不行,你需要建立一个font文件,此文件是字体的xml配置文件。下面我们就开始创建此font文件,在..\OgreSDK\media\gui目录下创建一个文本文件,输入

<?xml version="1.0" ?>

<Font Name="simfang" Filename="simfang.ttf" Type="FreeType" Size="12" NativeHorzRes="800" NativeVertRes="600" AutoScaled="true" />

然后将此文件重命名为simfang.font。接下来进入第三步。

第三步,此步有两种方法

第一种,打开..\Ogre\media\gui目录下的TaharezLookSkin.scheme文件(打开方式自定,文件名有可能不同,但内容大同小异),然后在

<Font Name="BlueHighway-8" Filename="bluehighway-8.font" />

后面插入

<Font Name="SimFang-12" Filename="simfang.font" />

后保存。

第二种,什么都不用做,直接进入第四步,O(∩_∩)O~。

这两种方法都需要将你所使用到的layout文件(在..\Ogre\media\gui目录下)另存为utf-8格式,否则你在layout文件中显示中文时会出错,好了,现在已经完成了,剩下的就是代码了。

第四步,在程序中找到

mSystem->setDefaultFont((CEGUI::utf8*)"BlueHighway-12"); 

在第三步中如果采用第一种方法则将此句修改为

mSystem->setDefaultFont((CEGUI::utf8*)"SimFang-12"); 

如果第三步中采用的第二种方法:-),则在此语句之前添加以下语句

CEGUI::FontManager::getSingleton().createFont("simfang.font");

然后再将其改为

mSystem->setDefaultFont((CEGUI::utf8*)"SimFang-12"); 

OVER,到此CEGUI可以支持中文显示了,下面几点要注意一下。

保证你的resources.cfg中的资源路径可以正确找到。

在程序中需要设置中文显示的地方用

CEGUI::utf8*)Ogre::UTFString(L"添加你要显示的中文").asUTF8_c_str();

来设置。

好了,终于可以在CEGUI中,见到我们的母语了。
作者:wanghao111
Email:wh-7528731@163.com
QQ:715156780

转载于:https://www.cnblogs.com/wanghao111/archive/2009/08/11/1543381.html

CEGUI中文显示四步曲相关推荐

  1. 实现CEGUI中文汉字输入法光标跟随(C/C++源码)

    作者:庄晓立(liigo) 日期:2011年7月20日 原创链接:http://blog.csdn.net/liigo/article/details/6621104 转载请注明出处:http://b ...

  2. python 读取excel 内的中文显示为unicode 编码

    测试的excel 显示如下 读取excel 打印的效果如下 现在想显示为中文 处理代码如下 #!/usr/bin/python# # -*- coding: utf-8 -*- import xlrd ...

  3. PL/SQL 中文显示乱码解决方案

    为什么80%的码农都做不了架构师?>>>    PL/SQL 中文显示乱码: 1.修改注册表进行设置: HKEY_LOCAL_MACHINE->SOFTWARE->ORA ...

  4. oracle11g怎么显示中文,ORACLE11G中PLSQL中文显示乱码、Linux下sqlplus查询中文乱码

    问题描述: 本地是win7操作系统,cmd里面sqlplus进去连接oracle数据库,中文可以正常显示,但是plsql连接oracle数据库,中文显示乱码,还有xshell远程连接oracle服务器 ...

  5. matplotlib画图中文显示问题

    matplotlib不支持中文显示,以下以画一个cos函数为例 代码如下: import matplotlib.pyplot as plt import numpy as npx = np.linsp ...

  6. python画图中文显示_解决Linux系统中python matplotlib画图的中文显示问题

    最近想学习一些python数据分析的内容,就弄了个爬虫爬取了一些数据,并打算用Anaconda一套的工具(pandas, numpy, scipy, matplotlib, jupyter)等进行一些 ...

  7. Win7安装软件,界面上中文显示乱码的解决方案

    Win7安装软件,界面上中文显示乱码的解决方案 参考文章: (1)Win7安装软件,界面上中文显示乱码的解决方案 (2)https://www.cnblogs.com/heyang78/p/42588 ...

  8. 解决python 保存json到文件时 中文显示16进制编码的问题

    解决python 保存json到文件时 中文显示16进制编码的问题 参考文章: (1)解决python 保存json到文件时 中文显示16进制编码的问题 (2)https://www.cnblogs. ...

  9. Oralce Plsql 中文显示乱码问题无需修改注册表完美解决

    Oralce Plsql 中文显示乱码问题无需修改注册表完美解决 参考文章: (1)Oralce Plsql 中文显示乱码问题无需修改注册表完美解决 (2)https://www.cnblogs.co ...

  10. linux php oracle 乱码,Linux下Oraclesqlplus中文显示乱码的问题的解决

    在Windows下sqlplus完全正常,可是到Linux下,sqlplus中文显示就出问题了,总是显示ldquo;??rdquo;,这个问题又怎么解决呢?经 在Windows下sqlplus完全正常 ...

最新文章

  1. 在线PHP网页查看,php查看是否在线
  2. cvpr 2015 2016论文地址
  3. Wordpress如何打开调试模式
  4. Javascript中数组去重的六种方法
  5. avs 中国音视频标准DRA 中音频标准及应用
  6. 咸阳高考成绩查询2021,2021咸阳市地区高考成绩排名查询,咸阳市高考各高中成绩喜报榜单...
  7. 基于PCA的人脸特征抽取
  8. Hadoop之MapReduce介绍
  9. 小程序中曾经遇到的坑(1)----canvas画布
  10. 有些新手小白创业者开奶茶店,为什么总是容易上当受骗呢?
  11. 压电式加速计matlab,低频压电加速度传感器的噪声特性及信号处理方法研究
  12. iOS app图标和相关尺寸
  13. Unity Realistic FPS插件 Ironsights脚本简化
  14. Mac Edge 浏览器开启几秒后自动关闭问题
  15. 苹果手机功能大全介绍_苹果手机功能大全,这些你都知道吗?
  16. PHP新浪乐居面试题,新浪php工程师面试题
  17. 产业链和价值链的联系和区别?
  18. canvas系列教程06 ——边界检测、碰撞检测
  19. java计算机毕业设计体检系统源码+数据库+系统+lw文档+mybatis+运行部署
  20. 基于荔枝派Lichee Nano(全志f1c100s)的kernel移植(二)

热门文章

  1. centos有用的命令
  2. python数学建模可视化,[Python与数学建模-数据处理与可视化]-3数据处理工具Pandas...
  3. 两种消息模型: 点对点(queue)发布/订阅(topic)
  4. java 堆有多少个_Java堆内存的十个要点
  5. UGUI动态改变MatchWidthOrHeight
  6. C++ 变量在内存中的分布
  7. 2018年英语计算机职称考试,2018年高级职称计算机考试内容介绍
  8. 先进先出算法_数据结构与算法之初识栈与队列
  9. 万物互联的根底就是嵌入式,小到智能手表,大到智能汽车,能落地的支撑之一就是嵌入式。
  10. idea中mapper.xml的头文件配置