cocos2d-x lua BMFont中文问题解决
来源:互联网 发布:电子盖章软件免费版 编辑:程序博客网 时间:2024/05/21 17:09
在研究用lua使用cocos2d-x 显示中文的问题,好像对ttf支持的不是很好,只能用CCLabelBMFont了,看了下BMFont工具生成的fnt文件,发现英文字符的char id 和asic2一样,
但是中文id 比如“一”这个汉字的char id 为 19968,google一下发现这是unicode编码。
CCLabelBMFont代码中生成字体纹理函数为void CCLabelBMFont::createFontChars()
问题的关键在这里啊,它使用的是string,也就是不支持宽字符,那当然找不到汉字对应的id了(还有个变量要改一下kCCBMFontMaxChars 默认设得很小,看情况设得大点,在对应头文件中)。
这样看来只要把string转换成wstring就能找到char id了,
转换代码:
setlocale(LC_ALL,"CHS");wchar_t *wstrBuf = new wchar_t[strlen(m_sString.c_str())]; swprintf(wstrBuf,L"%S",m_sString.c_str());wstring m_wsString(wstrBuf);最后:delete wstrBuf;
重新编译后接着运行代码,居然还是不能显示中文,继续查,发现传进来的theString一个中文占3个字节(这是什么编码?变长unicode?)然后我把lua的编码从uft-8换到ANSI编码,问题就解决了,顺利找到中文字符的char id,并且显示出来。
- cocos2d-x lua BMFont中文问题解决
- cocos2d-x中文乱码问题解决
- cocos2d-x中文乱码问题解决
- cocos2d-x 3.x 中文乱码问题解决
- cocos2d-x的中文编码问题解决方案
- cocos2d-x 中文乱码问题解决方案
- cocos2d-x 之美术字bmfont工具使用
- Cocos2d-x 周边工具 之 BMFont
- cocos2d-x中中文显示问题解决方法一
- cocos2d-x中中文显示问题解决方法二
- cocos2d-x 使用位图工具BMFont自定义字体 fnt
- Cocos2d-x 渲染自定义字体--bmfont工具简单使用
- cocos2d-x 使用位图工具BMFont自定义字体 fnt
- cocos2d-x 使用位图工具BMFont自定义字体 fnt
- cocos2d-x 与 lua
- Cocos2d-x Lua action
- cocos2d-x嵌入lua
- cocos2d-x lua开发
- Mysql 命令行导入sql数据,访问网站出现中文乱码的解决
- Ubuntu中 安装配置JDK
- ajax 技术和原理分析
- grep正则表达式
- 下一阶段学习任务。。
- cocos2d-x lua BMFont中文问题解决
- 一步一步开发sniffer(Winpcap+MFC)(五)莫道无人能识君,其实我懂你的心——解析数据包
- [Ubuntu]: Ubuntu 10.04卸载Xfce,重新回到GNOME当中
- grep元字符扩展
- 15,进程间通信
- Hibernate二级缓存攻略
- poj 2226 二分图 最小顶点覆盖 “草泥马”
- C#识别验证码
- Thread.wait()与Thread.yield()的区别