Cocos2d-x 对于中文的支持-----iconv库
Cocos2d-x 对于中文的支持-----iconv库
转自:http://momowing.diandian.com/post/2013-01-16/40047183777
我们在win32下创建类的时候,文件都是默认的ANSI的格式,如果你使用了中文,那么你在win32下就会看到乱码。当然,移植Android的时候,你把文件格式改为UTF-8即可。
但是为了方便win32下的调试,也为了省事点,我们需要一种方法能直接在win32和Android下显示中文的,这时候我们就需要用到iconv库的,cocos2d-x自带第三方库iconv。
在需要用到的地方,我们只要这么声明就可以:
12#include
"platform\third_party\win32\iconv\iconv.h"#pragma
comment(lib,"libiconv.lib")或者在VS中这么处理:
当然还是得加上
1#include
"platform\third_party\win32\iconv\iconv.h"这样子你就能引用cocos2d-x中自带的iconv库了。
但是当你移植到Android的时候,也许你正在使用cygwin编译,然后发现它报了:
convert_open等方法没找到的错误,因为Android手机上面是不带这个库的,所以你没法找到相关的方法。
这时候我能想到的就是自己去搞一个iconv库来编译到Android上面使用了。
首先:你要去网上下一个iconv库,这边我给出我用的iconv库,虽然不能保证都能用,但是至少我在Android2.3上面是没问题的。下载链接
或许你也可以在网上找到合适的iconv库。
其次:把iconv库解压放到cocos2d-x的根目录下
然后:修改你Android的mk。这里也给出mk的添加代码,如下:
12345678910111213141516LOCAL_C_INCLUDES
:= $(LOCAL_PATH)/../../../HelloWorld/proj.win32 \$(LOCAL_PATH)/../../../HelloWorld/Classes
\$(LOCAL_PATH)/../../../iconv
\$(LOCAL_PATH)/../../../iconv/include
\$(LOCAL_PATH)/../../../iconv/libcharset
\$(LOCAL_PATH)/../../../iconv/libcharset/lib
\$(LOCAL_PATH)/../../../iconv/libcharset/includeLOCAL_WHOLE_STATIC_LIBRARIES
:= iconv cocos2dx_static cocosdenshion_static cocos_extension_staticinclude
$(BUILD_SHARED_LIBRARY)$(call
import-module,CocosDenshion/android) \$(call
import-module,cocos2dx) \$(call
import-module,extensions) \$(call
import-module,iconv)最后:给出转换为UTF-8的格式的代码,如下:
123456789101112131415161718192021222324252627282930313233343536373839intDataController::code_convert(
constchar
*from_charset,constchar
*to_charset,constchar
*inbuf,size_tinlen,
char*outbuf,
size_toutlen
){iconv_t
cd;constchar
*temp = inbuf;constchar
**pin = &temp;char**pout
= &outbuf;memset(outbuf,0,outlen);cd
= iconv_open(to_charset,from_charset);if(cd==0)return-1;if(iconv(cd,pin,&inlen,pout,&outlen)==-1)return-1;iconv_close(cd);return0;}/*UTF8
To GB2312*/string
DataController::u2a(constchar
*inbuf ){size_tinlen
=strlen(inbuf);char*
outbuf =newchar[inlen
* 2 + 2];string
strRet;if(code_convert("utf-8","gb2312",
inbuf, inlen, outbuf, inlen * 2 + 2) == 0){strRet
= outbuf;}delete[]
outbuf;returnstrRet;}/*GB2312
To UTF8*/
//使用中文时用该函数转换string
DataController::a2u(constchar
*inbuf ){size_tinlen
=strlen(inbuf);char*
outbuf =newchar[inlen
* 2 + 2];string
strRet;if(code_convert("gb2312","utf-8",
inbuf, inlen, outbuf, inlen * 2 + 2) == 0){strRet
= outbuf;}delete[]
outbuf;returnstrRet;}PS: 链接无法直接点击下载的话,请使用右键->迅雷下载
Cocos2d-x 对于中文的支持-----iconv库的更多相关文章
- zabbix开启对中文的支持--&&--中文乱码解决方法
zabbix不支持中文图 开启zabbix对中文的支持 原来zabbix默认把对中文的支持给关闭了,我们需要修改zabbix的php源文件. 修改站点根目录下include/locales.inc.p ...
- 解决嵌入式linux系统下iconv库的移植问题
一.解决问题 在arm开发板上使用framebuff,在汉字显示时,因为只有gb2312的16*16的汉字字库,而ubuntu16.04默认 的编码方式时utf-8,因此需要进行转码(ut ...
- Linux下安装libiconv使php支持iconv函数
libiconv组件安装好了可以让我们php支持iconv函数了,这个函数的作用就是字符编码强制转换了,下面和111cn小编一起来看一个Linux中安装libiconv使php支持iconv函数的例子 ...
- cocos2dx使用了第三方库照样移植android平台-解决iconv库的移植问题
当我写这篇文章的时候我是怀着激动的心情的,因为我又解决了一个技术问题.你可能对题目还一知半解,这是什么意思,我之所以要写这篇文章就是要解决当我们在cocos2dx中使用了第三方库的时候,移植到andr ...
- Source Insight中文操作支持的宏
以下是Source Insight中文字符串支持的宏的实现,在此做个备份. 代码来自网上,非笔者所写.原有代码有个明显的Bug(Del的时候会导致多删除一个字符和多插入一个空格),已经被笔者fix掉. ...
- Raneto中文搜索支持
背景 因业务部门需要在线软件使用说明文档,但我们资源不足,故我想找一个开源的知识库,发现 Raneto不错,决定使用. 官方文档相当清晰,部署完成,发布一些文章,启动项目,交由业务同事测试使用,于是我 ...
- Mybatis Generator的model生成中文注释,支持oracle和mysql(通过实现CommentGenerator接口的方法来实现)
自己手动实现的前提,对maven项目有基本的了解,在本地成功搭建了maven环境,可以参考我之前的文章:maven环境搭建 项目里新建表时model,mapper以及mapper.xml基本都是用My ...
- SciTE: 中文字符支持问题
SciTE: 中文字符支持问题 SciTE(Scintilla Text Editor)是一个体积小巧的文本编辑器. 但是它默认的设置对中文字符处理不好,其实只要对它进行相应的配置,就可以了. 1 ...
- cenos 上的php 支持GD库问题
---恢复内容开始--- thinkphp 开发的项目verify类无法引用,原因是没有开启gd库 环境:CentOS 6.4,php-5.3.3需求:php支持GD库解决方案:GD是Linux下的一 ...
随机推荐
- 简单的SocketExample
客户端//---------------VerySimpleClient.java package SocketExample; // Tue Nov 2 18:34:53 EST 2004 // / ...
- sql 随笔 2015-07-02
sql 自定义函数 --检查函数是否存在 if exists (select * from dbo.sysobjects where id = object_id(N'dbo.pTitleCase') ...
- soap协议有get方式
今天去面试,被问到了这个问题.一时没想起来.考官的说法是没有 get,使用post 发请求.restful 有get put delete等谓词. 特地查了一下.记在下边. <system.we ...
- Storm集群的搭建
storm的环境和hadoop的环境没有任何关系 1.安装Zookeeper集群 2.解压storm 3.修改文件conf/storm.yaml 3.1.配置zookeeper服务器 storm.zo ...
- Python错误处理
中文注释出错,把UTF-8标明放在文件头就行了 # coding: utf-8
- 1160. Network(最小生成树)
1160 算是模版了 没什么限制 结束输出就行了 #include <iostream> #include<cstdio> #include<cstring> #i ...
- 函数fsp_alloc_from_free_frag
/**********************************************************************//** Allocates a single free ...
- poshytip两个实用示例
<html xmlns="http://www.w3.org/1999/xhtml"><head runat="server"> < ...
- GridView表头排序方法设置
1.效果图 2.前台代码 说明:红色代码为核心代码 <asp:GridView ID="gvData" runat="server" AutoGenera ...
- LeetCode Find Minimum in Rotated Sorted Array 旋转序列找最小值(二分查找)
题意:有一个有序序列A,其内部可能有部分被旋转了,比如A[1...n]被转成A[mid...n]+A[1...mid-1],如果被旋转,只有这种形式.问最小元素是?(假设没有重复元素) 思路:如果是序 ...