cocos2dx windows下使用中文字符串乱码解决方案
发布时间:2020-12-14 20:04:21 所属栏目:百科 来源:网络整理
导读:第一种 编码转换 int CMyUtils::convert(char *from_charset,char *to_charset,const char *inbuf,size_t inlen,char *outbuf,size_t outlen) { iconv_t cd;const char* temp = inbuf;const char** pin = temp;char** pout = outbuf;memset(outbuf,outlen);c
第一种 编码转换 int CMyUtils::convert(char *from_charset,char *to_charset,const char *inbuf,size_t inlen,char *outbuf,size_t outlen) { iconv_t cd; const char* temp = inbuf; const char** pin = &temp; char** pout = &outbuf; memset(outbuf,outlen); cd = iconv_open(to_charset,from_charset); if(cd == 0) return -1; if(iconv(cd,pin,&inlen,pout,&outlen) == -1) return -1; return 0; } std::string CMyUtils::gb2312ToUtf8(const char *inbuf) { size_t inleng = strlen(inbuf); char* outbuf = new char[inleng * 2 + 2]; std::string strRet; if( convert("gb2312","utf-8",inbuf,inleng,outbuf,inleng * 2 + 2) == 0 ) strRet = outbuf; delete[] outbuf; return strRet; } 头文件要加这个 #include "../external/win32-specific/icon/include/iconv.h" 这种感觉不太好,转来转去感觉不踏实。 第二种 用plist存储字符串,然后再读取,当然要用utf8编码存储 plits: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>data</key> <dict> <key>string1</key> <string>中华好诗词</string> </dict> <key>metadata</key> <dict> <key>format</key> <integer>1</integer> </dict> </dict> </plist> 然后用的时候: Configuration *pConf = Configuration::getInstance(); pConf->loadConfigFile("strings.plist"); pConf->getValue("string1").asString();值得注意的一点是key貌似不能用中文。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |