| #include <tchar.h> #include <string> #include "iconviconv.h" #pragma comment(lib,"libiconv.lib")
 int GBKToUTF8(std::string & gbkStr,const char* toCode,const char* fromCode){
 iconv_t iconvH;
 iconvH = iconv_open(fromCode,toCode);
 
 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))
 {
 free(pBuff);
 iconv_close(iconvH);
 return -1;
 }
 
 gbkStr = pBuff;
 free(pBuff);
 iconv_close(iconvH);
 
 return 0;
 }
 
 //使用方法 std::string str = "你好"; GBKToUTF8(str,"gbk","utf-8"); CCLabelTTF* label = CCLabelTTF::create(str.c_str(),"Arial",24); this -> addChild(label); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |