cocos2d-x 中文显示
发布时间:2020-12-14 19:58:09 所属栏目:百科 来源:网络整理
导读:#include "ChineseDictionary.h"#include "iconv/iconv.h"#pragma comment(lib,"libiconv.lib")CCScene * ChineseDictionary::scene(){CCScene * s = CCScene::create();CCLayer * layer = ChineseDictionary::create();s-addChild(layer);return s;}int Chi
#include "ChineseDictionary.h" #include "iconv/iconv.h" #pragma comment(lib,"libiconv.lib") CCScene * ChineseDictionary::scene() { CCScene * s = CCScene::create(); CCLayer * layer = ChineseDictionary::create(); s->addChild(layer); return s; } int ChineseDictionary::GBKToUTF8(std::string &gbkStr) { iconv_t iconvH; iconvH = iconv_open("utf-8","gb2312"); if (iconvH == 0) { return -1; } const char * strChar = gbkStr.c_str(); const char ** pin = &strChar; size_t strLength = gbkStr.length(); char* outbuf = (char*)malloc(strLength * 4); char* pBuff = outbuf; memset(outbuf,strLength * 4); size_t outLength = strLength * 4; if (-1 == iconv(iconvH,pin,&strLength,&outbuf,&outLength)){ iconv_close(iconvH); return -1; } gbkStr = pBuff; iconv_close(iconvH); return 0; } bool ChineseDictionary::init() { bool bRet = false; do { CC_BREAK_IF(!CCLayer::init()); addChineseTTF(); bRet = true; } while (0); return bRet; } void ChineseDictionary::addChineseTTF() { std::string keyStr = "啊啊啊"; GBKToUTF8(keyStr); CCSize winSize = CCDirector::sharedDirector()->getWinSize(); CCLabelTTF * chTTF = CCLabelTTF::create(); chTTF->setString(keyStr.c_str()); chTTF->setFontName("Arial"); chTTF->setFontSize(50); addChild(chTTF); chTTF->setPosition(ccp(winSize.width/2,winSize.height/2)); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |