cocos2d-x在win32開發中,不能直接顯示中文,需要轉字元。
cocos2d-x已經自帶了乙個對應的庫iconv。如果要使用它,我們要在做以下配置
1.右鍵專案->屬性->附加包含目錄->編輯。然後新增乙個路徑,我的如下
d:\cocos2d-x\cocos2d-2.0-x-2.0.4\cocos2d-2.0-x-2.0.4\cocos2dx\platform\third_party\win32\iconv
2.右鍵專案->屬性->聯結器->輸入->附加依賴庫
增加libiconv.lib
這樣就配置完了,不保證我記憶的很準確,如果有錯誤,可參考別人的除錯下。
然後轉化**如下
#ifndef _tools_h_
#define _tools_h_
#include "cocos2d.h"
#if (cc_target_platform == cc_platform_win32)
#include "iconv\iconv.h"
int gbktoutf8(std::string &gbkstr,const char* fromcode ,const char* tocode);
void* gbktoutf8(std::string &gbkstr);
#endif
#endif
#include "tools.h"
#include "iconv\iconv.h"
#if (cc_target_platform == cc_platform_win32)
//字元轉換,使cocos2d-x在win32平台支援中文顯示
int gbktoutf8(std::string &gbkstr,const char* fromcode,const char* tocode)
const char* strchar = gbkstr.c_str();
const char** pin = &strchar;
size_t strlength = gbkstr.length();
char* outbuf = (char*)malloc(strlength*4);
char* pbuff = outbuf;
memset(outbuf,0,strlength*4);
size_t outlength = strlength*4;
if(-1 == iconv(iconvh,pin,&strlength,&outbuf,&outlength))
gbkstr = pbuff;
iconv_close(iconvh);
return 0;
}/**
**在封裝一層,直接傳入乙個string,轉換後還回對應的編碼給你
*///const char* gbktoutf8(std::string &gbkstr)
//void* gbktoutf8(std::string &gbkstr)
#endif
參考文章:
該作者用的是fnt字型,只能顯示fnt檔案裡有的中文,所以大家使用時要注意區分
cocos2dx顯示中文
從外部檔案讀取utf 8 推薦大家使用資源檔案進行配置儲存,如xml將其採用的utf 8的編碼方式儲存,自然會讓我想到,日文 韓文等待各種國家的語言都可以正常顯示了,為了你的軟體國際化.盡量採用這種方式吧!到時候根據手機系統的語言,然後動態的來讀取你檔案中的資源.先看下我們的xml檔案 html v...
cocos2d x 實現中文輸出
下面我們來說說如何實現中文輸出吧!首先,個人覺得可以新建乙個tools.cpp 和 tools.h 檔案 首先在tools.h ifndef tools h 預定義塊 define tools h include cocos2d.h if cc target platform cc platform...
cocos2d x 中文 亂碼問題
最近好些人都有問到,cocos2d x 對中文支援真不好。各種亂碼,甚至連注釋放在mac下都亂碼。解決操作步驟如下,備忘一下 1 選中有中文的那個cpp,點檔案另存為,在儲存這裡竟然有個小箭頭 點之,再點編碼儲存 這個cpp就utf 8化了,然後中文就正常了,好麻煩。這是現在彩鳥筆者唯一能找到方便的...