#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)); }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。