cocos2d x實現中文顯示 筆記

2021-06-15 02:20:25 字數 1594 閱讀 5089

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化了,然後中文就正常了,好麻煩。這是現在彩鳥筆者唯一能找到方便的...