Android平臺版本和設備碎片化很嚴重,所以從Win32平臺移植到Android平臺會有不少問題,下面是咱們概括的從Win32平臺移植到Android平臺遇到的一些問題。
在Android平臺中文亂碼並非一個問題,或者說在Android平臺是不該該出現中文亂碼的。這個問題究其根本是由於咱們在Windows下采用開發Android應用致使的問題。默認狀況下Windows中文環境是採用GBK編碼,源程序文件HelloWorldScene.cpp編碼默認也是GBK,若是源程序代碼中若是有中文輸入,例以下面的代碼:
html
[html] view plaincopy微信
void HelloWorld::OnClickMenu1(Object* pSender) 函數
{ 工具
NoteDAO::initDB(); 網站
NoteDAO::create("2008-08-16 10:01:02", "初始化數據。"); 編碼
} spa
void HelloWorld::OnClickMenu2(Object* pSender) .net
{ 日誌
string currentTime = MyUtility::getCurrentTime(); code
log("%s",currentTime.c_str());
NoteDAO::create(currentTime, "歡迎使用MyNote。");
}
這樣程序編譯以後的中文編碼仍是GBK,因爲Android平臺採用的編碼是UTF-8,當它們在Android平臺經過日誌函數或標籤等控件輸出時候就會亂碼。
解決方法很簡單,咱們只須要把HelloWorldScene.cpp文件另存爲UTF-8就能夠了,用記事本等文本編輯工具打而後另存爲UTF-8就能夠,若是是在Visual Studio工具中能夠選擇菜單文件→高級保存選項,在彈出如圖所示對話框,選擇編碼爲Unicode(UTF-8帶簽名),而後點擊肯定按鈕保存。
高級保存選項
咱們只須要對有中文字符的文件(包括h和cpp文件),採用上面的另存爲UTF-8字符集就能夠了,其它的文件能夠不用考慮。須要記住的是在Android和iOS平臺UTF-8在字符集的默認標準。
更多內容請關注國內第一本Cocos2d-x 3.2版本圖書《Cocos2d-x實戰:C++卷》
本書交流討論網站:http://www.cocoagame.net
更多精彩視頻課程請關注智捷課堂Cocos課程:http://v.51work6.com
歡迎加入Cocos2d-x技術討論羣:257760386
歡迎關注智捷iOS課堂微信公共平臺