cocos2d x解決中文亂碼

2021-06-23 08:09:23 字數 2248 閱讀 4199

一 介紹

最近由於各種各樣的原因,好長時間沒有學習cocos2d-x了。突然有種害怕的感覺,這樣下去,以前學的關於cocos2d-x的一點皮毛會徹底忘記的,下次再學,估計又得重頭開始了。所以,還是要平時多多使用吧,持之以恆最重要了...

由於在cocos2d-x中直接使用中文會出現亂碼,誰讓cocos2d-x是由cocos2d而來,而cocos2d這東西是老外寫的呢?通常解決中文亂碼有兩種方法:

(2)將中文字串寫到xml檔案中(注意xml檔案格式儲存為utf-8),然後解析xml檔案,格式可以仿照android中的strings.xml,而且這種方法能方便以後的國際化。

通過比較,可以很容易的發現第二種方法更好,那麼下面就介紹第二種方法,讓我們能在cocos2d-x程式中使用中文,徹底解決中文亂碼問題。

二 實現

1 新建xml檔案,按照一定的格式,輸入相應要顯示的中文,最後一定需要使用utf-8格式儲存檔案

[html] 

hello

你好!info

我是hahaya。

hello

你好!info

我是hahaya。

2 **實現

[cpp] 

/** 在cocos2d-x中使用中文 **/ 

//利用ccdictionary來讀取xml  

ccdictionary *strings = ccdictionary::createwithcontentsoffile("strings.xml"); 

//讀取hello鍵中的值 objectforkey根據key,獲取對應的string  

const char *hello = ((ccstring*)strings->objectforkey("hello"))->m_sstring.c_str(); 

//讀取info鍵中的值  

const char *info = ((ccstring*)strings->objectforkey("info"))->m_sstring.c_str(); 

//顯示  

cclabelttf  *labelhello = cclabelttf::create(hello, "arial", 24); 

labelhello->setposition( ccp(size.width / 2, size.height - 50) ); 

this->addchild(labelhello, 1); 

cclabelttf *labelinfo = cclabelttf::create(info, "arial", 30); 

labelinfo->setposition( ccp(size.width / 2, size.height - 100) ); 

this->addchild(labelinfo, 1); 

/** 在cocos2d-x中使用中文 **/

//利用ccdictionary來讀取xml

ccdictionary *strings = ccdictionary::createwithcontentsoffile("strings.xml");

//讀取hello鍵中的值 objectforkey根據key,獲取對應的string

const char *hello = ((ccstring*)strings->objectforkey("hello"))->m_sstring.c_str();

//讀取info鍵中的值

const char *info = ((ccstring*)strings->objectforkey("info"))->m_sstring.c_str();

//顯示

cclabelttf  *labelhello = cclabelttf::create(hello, "arial", 24);

labelhello->setposition( ccp(size.width / 2, size.height - 50) );

this->addchild(labelhello, 1);

cclabelttf *labelinfo = cclabelttf::create(info, "arial", 30);

labelinfo->setposition( ccp(size.width / 2, size.height - 100) );

this->addchild(labelinfo, 1);

3 程式執行效果

cocos2dx 解決中文亂碼問題

在使用cocos2dx的時候,裡面使用了中文或者是在cocos studio編輯器裡面使用了中文,顯示的時候會出現亂碼問題,下面提供幾個解決方案 pragma execution character set utf 8 問題與解決方法 在windows環境下使用visual studio 開發coc...

cocos2d x 中文 亂碼問題

最近好些人都有問到,cocos2d x 對中文支援真不好。各種亂碼,甚至連注釋放在mac下都亂碼。解決操作步驟如下,備忘一下 1 選中有中文的那個cpp,點檔案另存為,在儲存這裡竟然有個小箭頭 點之,再點編碼儲存 這個cpp就utf 8化了,然後中文就正常了,好麻煩。這是現在彩鳥筆者唯一能找到方便的...

cocos2d x中文亂碼問題解決

這裡寫乙個工具類 xmlparser,用來解決遊戲中出現的中文亂碼問題。主要是把遊戲中要使用到的文字儲存在xml檔案中,通重載入這個檔案,並且訪問name節點,來獲取相對應的中文。xmlparser.h如下 xmlparse.h game1 created by imac on 15 7 24.if...