Cocos移植到Android的一些問題-中文亂碼問題

Android平臺版本和設備碎片化很嚴重,因此從Win32平臺移植到Android平臺會有很多問題,下面是我們歸納的從Win32平臺移植到Android平臺遇到的一些問題。
在Android平臺中文亂碼並不是一個問題,或者說在Android平臺是不應該出現中文亂碼的。這個問題究其根本是因為我們在Windows下采用開發Android應用導致的問題。默認情況下Windows中文環境是采用GBK編碼,源程序文件HelloWorldScene.cpp編碼默認也是GBK,如果源程序代碼中如果有中文輸入,例如下面的代碼:

void HelloWorld::OnClickMenu1(Object* pSender)
{
	NoteDAO::initDB();
	NoteDAO::create(2008-08-16 10:01:02, 初始化數據。);
}
void HelloWorld::OnClickMenu2(Object* pSender)
{
	string currentTime = MyUtility::getCurrentTime();
	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在字符集的默認標準。

  

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *