COCOS2D解決中文問題

bool IConvConvert(const char *from_charset, const char *to_charset, const char *inbuf, int inlen, char *outbuf, int outlen) 

{
    iconv_t cd = iconv_open(to_charset, from_charset);
	if (cd == 0) return false;
	const char **pin = &inbuf;
	char **pout = &outbuf;
	memset(outbuf,0,outlen);
	size_t ret = iconv(cd,pin,(size_t *)&inlen,pout,(size_t *)&outlen);
	iconv_close(cd);
	return ret == (size_t)(-1) ? false : true;								

}

std::string IConvConvert_GBKToUTF8(const std::string& str)

{

	const char* textIn = str.c_str();
	char textOut[256];
	bool ret = IConvConvert("gb2312", "utf-8", textIn, strlen(textIn),textOut, 256);
	return ret ? string(textOut) : string();

}

做個測試,放到LABEL裏面試下:

std::string text = IConvConvert_GBKToUTF8("你好世界");
CCLabelTTF* pLabel = CCLabelTTF::create(text.c_str(), "Arial", 24);

記得在最前面添加:

#include <iconv.h>//注意一下這個路徑,如果找不到,可以搜索一下自己的COCOS2D包下面的文件。

最最重要的是下面:

#pragma comment(lib, "libiconv.lib")

萬事OK

本人版本:  cocos2d-2.0-rc2-x-2.0.1 + VS2008編譯。

盜版來源:

http://blog.csdn.net/tkokof1/article/details/7426706

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章