iconv下载(AndroID)
源码下载地址,已编译完的iconv包(用这个即可)
ios自带libiconv.dylib,只需#include <iconv.h>即可
步骤
1.libiconv解压文件放置
直接将解压的libiconv文件夹放在cocos2dx游戏引擎cocos2d-2.1rc0-x-2.1.2目录下
libiconv中Andriod.mk文件内容为:
LOCAL_PATH:= $(call my-dir)#libiconv.soinclude $(CLEAR_VARS)LOCAL_MODulE := libiconv_staticLOCAL_MODulE_filename := libiconvLOCAL_CFLAGS := \ -Wno-multichar \ -DAndroID \ -DliBDIR="c" \ -DBUILDING_liBICONV \ -DIN_liBRARYLOCAL_SRC_fileS := \ libcharset/lib/localcharset.c \ lib/iconv.c \ lib/relocatable.cLOCAL_C_INCLUDES += \ $(LOCAL_PATH)/include \ $(LOCAL_PATH)/libcharset \ $(LOCAL_PATH)/lib \ $(LOCAL_PATH)/libcharset/include \ $(LOCAL_PATH)/srclibinclude $(BUILD_STATIC_liBRARY)
2.修改自己工程中的Andriod.mk文件
LOCAL_WHolE_STATIC_liBRARIES := cocos2dx_static cocosdenshion_static cocos_extension_static libiconv_static include $(BUILD_SHARED_liBRARY)$(call import-module,CocosDenshion/androID) $(call import-module,cocos2dx) $(call import-$(call import-module,libiconv)蓝色为变化的内容
3.iconv.h头文件拷贝
将程序中cocos2dx\platform\third_party\win32目录下的iconv文件夹拷贝到自己工程的Classes目录下
4.程序修改
.h文件
#include iconv/iconv.h" #if (CC_TARGET_PLATFORM == CC_PLATFORM_WIN32) #pragma comment(lib,"libiconv.lib") #endif/*---------------------------------------------------*/// iconv转码static int code_convert( const char *from_charset,char *to_charset,255); line-height:1.5!important">char *inbuf,size_t inlen,255); line-height:1.5!important">char *outbuf,size_t outlen );static std::string u2a( char *inbuf );string a2u( char *inbuf );.cpp文件
int CCommonTool::code_convert( char *temp = inbuf; char **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) 1; iconv_close(cd); return 0; } UTF8 To GB2312*/ string CCommonTool::u2a( char *inbuf ) { size_t inlen = strlen(inbuf); char * outbuf = new char[inlen * 2 + 2]; string strRet; if(code_convert(utf-8",gb23122) == 0) { strRet = outbuf; } delete [] outbuf; return strRet; } GB2312 To UTF8string CCommonTool::a2u( return strRet; }程序使用
CCString ccStr;
ccStr.m_sstring = CCommonTool::a2u(ccStr.m_sstring.c_str());
希望能给你帮助~
总结以上是内存溢出为你收集整理的cocos2d-x移植iconv到Android平台全部内容,希望文章能够帮你解决cocos2d-x移植iconv到Android平台所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)