国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
Cocos2d-x 3.1.1 學習日志4--cocos2d-x解決中文亂碼問題的幾種辦法

做個打飛機的游戲,由于版本太新,網(wǎng)上基本沒有教教程,我的版本是cocos2d-x 3.1.1的,今天遇到cocos2dx中中文亂碼的問題。無奈只好Google百度尋求答案,明白了這個問題的緣由。因為cocos2d-x內(nèi)部是以utf8處理文本的,而VS直接輸入時文本編碼為GBK,如果添加L標志,則為Unicode編碼。

 

解決這個問題有三種辦法:

  1. 將源代碼文件保存為utf8編碼,不過由于編譯器的問題,這種方式會導致很多無法預測的問題

  2. 將字符串用utf8編碼集中存到一文件中,然后用代碼讀取這些字符串來使用,這種辦法還能很好的支持多語言版本

  3. 使用字符串時,先將其轉(zhuǎn)換為utf8編碼

    我最終使用了第三種方法,第一種撇開不說,第二種實現(xiàn)起來比較麻煩,第三種則要方便很多。

    //加這個函數(shù),G2U,我自己寫的函數(shù)名。
    glview=GLView::create(G2U(飛機大戰(zhàn)));

     

    //然后把這個函數(shù)加上

    char* AppDelegate::G2U(const char* gb2312)
    {
    int len = MultiByteToWideChar(CP_ACP, 0, gb2312, -1, NULL, 0);
    wchar_t* wstr = new wchar_t[len+1];
    memset(wstr, 0, len+1);
    MultiByteToWideChar(CP_ACP, 0, gb2312, -1, wstr, len);
    len = WideCharToMultiByte(CP_UTF8, 0, wstr, -1, NULL, 0, NULL, NULL);
    char* str = new char[len+1];
    memset(str, 0, len+1);
    WideCharToMultiByte(CP_UTF8, 0, wstr, -1, str, len, NULL, NULL);
    if(wstr) delete[] wstr;
    return str;
    }

    //然后在頭文件里面加上函數(shù)聲明就可以了

    char* G2U(const char* gb2312) ;

本站僅提供存儲服務,所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
wchar_t與char轉(zhuǎn)換(總結(jié))(轉(zhuǎn))
字符串處理 - ANSI - Unicode - UTF8 轉(zhuǎn)換
也談C 中char*與wchar
字符編碼轉(zhuǎn)換_進制轉(zhuǎn)換(GB2312,GBK,JNI,HexTOStr) (轉(zhuǎn))
字符識別Google開源Tesseract
《源碼探秘 CPython》23. 字符串的相關操作
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服