中文乱码,有点烦人

使用了 cocos 的 EditBox 类.

在设置 editBox->setPlaceHolder(value);时.

setPlaceHolder 规定传入的是 char * value类型时, 我在传值时,使用的是 类型转换了如 " (char*)“用户名 You Name” ". .他返回出来的 中文部分是乱码.英文是正常的.

这情况大家见过吗?

楼主用的什么平台?windows上的么?

— Begin quote from ____

引用第1楼ArcherPeng于2015-07-25 19:59发表的 :
楼主用的什么平台?windows上的么? http://www.cocoachina.com/bbs/job.php?action=topost&tid=315125&pid=1355362

— End quote

恩,你怎么知道? WIN 7 VS2013IDE

Windows编码的问题,
尝试如下方案:
void WStrToUTF8(std::string& dest, const std::wstring& src){
dest.clear();

for (size_t i = 0; i < src.size(); i++){  
    wchar_t w = src*;  
    if (w <= 0x7f)  
        dest.push_back((char)w);  
    else if (w <= 0x7ff)  
    {  
        dest.push_back(0xc0 | ((w >> 6)& 0x1f));  
        dest.push_back(0x80| (w & 0x3f));  
    }  
    else if (w <= 0xffff)  
    {  
        dest.push_back(0xe0 | ((w >> 12)& 0x0f));  
        dest.push_back(0x80| ((w >> 6) & 0x3f));  
        dest.push_back(0x80| (w & 0x3f));  
    }  
    else if (sizeof(wchar_t) > 2 && w <= 0x10ffff)  
    {  
        dest.push_back(0xf0 | ((w >> 18)& 0x07)); // wchar_t 4-bytes situation  
        dest.push_back(0x80| ((w >> 12) & 0x3f));  
        dest.push_back(0x80| ((w >> 6) & 0x3f));  
        dest.push_back(0x80| (w & 0x3f));  
    }  
    else 
        dest.push_back('?');  
}  

}
std::string WStrToUTF8(const std::wstring& str)
{
std::string result;
WStrToUTF8(result, str);
return result;

}
std::string timeStr1 = WStrToUTF8(L"%d天%d小时");*

— Begin quote from ____

引用第3楼ArcherPeng于2015-07-26 10:30发表的 回 2楼(aa233527) 的帖子 :
Windows编码的问题,
尝试如下方案:
void WStrToUTF8(std::string& dest, const std::wstring& src){
dest.clear();

http://www.cocoachina.com/bbs/job.php?action=topost&tid=315125&pid=1355497

— End quote

谢谢兄弟的回复,真难得,呵呵,你给来的方案,有点难弄.,暂时糊涂,后来找到了个方法,就是把整个文件,设置为UTF8就可以了.

mac大法好!!!!脚本大法好!!!!

no money buy mac 啊…

用脚本,别用C++,就没没事了