這裡寫乙個工具類——xmlparser,用來解決遊戲中出現的中文亂碼問題。
主要是把遊戲中要使用到的文字儲存在xml檔案中,通重載入這個檔案,並且訪問name節點,來獲取相對應的中文。
xmlparser.h如下 //
// xmlparse.h
// game1
//// created by imac on 15-7-24.
////
#ifndef __game1__xmlparse__
#define __game1__xmlparse__
virtual void endelement(void *ctx, const char *name);
// 對應xml標籤文字
virtual void texthandler(void *ctx, const char *s, int len);
// 獲取對應標籤的字串
cocos2d::string* getstring(const char *key);
private:
cocos2d::ccdictionary *m_pdictionary;
std::string m_key;
std::string startxmlelement;
std::string endxmlelement;
};#endif /* defined(__game1__xmlparse__) */
xmlparser.cpp如下 //
// xmlparse.cpp
// game1
//// created by imac on 15-7-24.
////
#include "xmlparse.h"
//字元ascii碼
// 空格
const static int space = 32;
// 換行
const static int nextline = 10;
// tab 橫向製表符
const static int tab = 9;
string replace(string source, string pattern, string dstpattern)
}result += source.substr(i);
return result;
}xmlparser* xmlparser::parsewithfile(const char *xmlfilename)
cc_safe_delete(pxmlparser);
return null;
}bool xmlparser::initwithfile(const char *xmlfilename)
xmlparser* xmlparser::parsewithstring(const char *content)
cc_safe_delete(pxmlparser);
return null;
}bool xmlparser::initwithstring(const char *content)
//開始乙個節點
// 比如 木\n樁\n怪
xmlparser的使用:
xmlparser *pxmlparser = xmlparser::parsewithfile("tujilayer.xml");
string *mz = pxmlparser->getstring("muzhuang");
m_pmzlabel = labelttf::create(mz->getcstring(), "", 30); // 注意此處的getcstring()
這樣一來,中文亂碼問題就得到解決了。
cocos2d x 中文 亂碼問題
最近好些人都有問到,cocos2d x 對中文支援真不好。各種亂碼,甚至連注釋放在mac下都亂碼。解決操作步驟如下,備忘一下 1 選中有中文的那個cpp,點檔案另存為,在儲存這裡竟然有個小箭頭 點之,再點編碼儲存 這個cpp就utf 8化了,然後中文就正常了,好麻煩。這是現在彩鳥筆者唯一能找到方便的...
cocos2dx 解決中文亂碼問題
在使用cocos2dx的時候,裡面使用了中文或者是在cocos studio編輯器裡面使用了中文,顯示的時候會出現亂碼問題,下面提供幾個解決方案 pragma execution character set utf 8 問題與解決方法 在windows環境下使用visual studio 開發coc...
cocos2d x解決中文亂碼
一 介紹 最近由於各種各樣的原因,好長時間沒有學習cocos2d x了。突然有種害怕的感覺,這樣下去,以前學的關於cocos2d x的一點皮毛會徹底忘記的,下次再學,估計又得重頭開始了。所以,還是要平時多多使用吧,持之以恆最重要了.由於在cocos2d x中直接使用中文會出現亂碼,誰讓cocos2d...