首先贴下环境:Win7 64, NDK r8e, libiconv-1.14, cygwin
一 Win32环境配置
Cocos2D-X自带有win32上的iconv库。仅仅须要配置一下就可以使用。1 引入头文件
属性->配置属性->C/C++->附加包括文件夹:$(ProjectDir)........cocos2dxplatform hird_partywin32iconv
2 引入静态库:libiconv.lib
属性->配置属性->连接器->输入->附加依赖项:libiconv.lib
3 定义一个公用转码函数
#include "iconv.h"
bool iconv_convert(void *src, unsigned int src_len,char *src_charset, void *dest, unsigned int dest_len, char *dest_charset)
{
const char *in;
char *out,*dest_ptr;
size_t in_left,out_left,mutant,converted;
in_left=src_len;
out_left=dest_len;
in=(char *)src;
out=dest_ptr=(char *)dest;
iconv_t oConv=iconv_open(dest_charset,src_charset);
if(oConv==(iconv_t)(-1))
{
CCLog("ERROR: unable to open libiconv.");
return false;
}
mutant = iconv(oConv, &in, &in_left, &out, &out_left );
iconv_close(oConv);
if(mutant == (size_t)(-1))
{
CCLog("ERROR: unable to convert anything.");
return false;
}
converted = dest_len - out_left;
CCLog("to convert %u characters, %u mutanted , %u converted
",src_len,mutant,converted);
dest_ptr[converted]='