vc中std:wstring类型的两个字符串相加,前者是中文后者是字母,相加后最后一个中文和第一个字母消失变成一个“?”,怎么回事? 如 wstring str1 = _T("未识别"); wstring str2 = _T("$$"); str1 +=str2; 的结果是str1= _T("未识?$") 这是怎么回事呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你的str1是怎么看到的?我这里调试的时候没有问题啊 下面是我在MFC中的代码,是没有问题的: CString str1 ,str2; str1= _T("未识别"); str2 = _T("$$"); str1 += str2; MessageBox(str1); str1是从BSTR类型字符串赋值来的(Activex控件),是std:string类型,不是CString类型。 不好意思,弄错了。跟踪了以下发现 是在将 _T("未识别$$")转化为 UTF8时出现的乱码。 用的这个:string UnicodeToUTF8( const wstring & s ){ string result; int n = WideCharToMultiByte( CP_UTF8, 0, s.c_str(), -1, 0, 0, 0, 0 ); char * buffer = new char[n]; ::WideCharToMultiByte( CP_UTF8, 0, s.c_str(), -1, buffer, n, 0, 0 ); result = buffer; delete[] buffer; return result;} 制作一个类似button控件的 ocx 实现Activex控件,给javascript调用问题 对话框程序中,如何使用正则表达式? 利用TCP\IP协议进行传输时,是不是一端发过去的数据另一端肯定能接收到? 谁能说一下用socket多险程传送文件的大体架构 编译错误:找不到 vcspawn.exe ,怎么回事,如何解决? 帮帮忙,拜托! 极限编程 XP 是哪两个单词的缩写? 谁有jpg-png格式互转的c源码,我重分答谢?? 请问如何将COleDateTime类型将转化为Const Char * ? MFC UINT 谁有基于 jabber XMPP的聊天客户端VC程序发一个给我呀
CString str1 ,str2;
str1= _T("未识别");
str2 = _T("$$");
str1 += str2;
MessageBox(str1);
str1是从BSTR类型字符串赋值来的(Activex控件),是std:string类型,不是CString类型。
不好意思,弄错了。跟踪了以下发现 是在将 _T("未识别$$")转化为 UTF8时出现的乱码。 用的这个:
string UnicodeToUTF8( const wstring & s )
{
string result; int n = WideCharToMultiByte( CP_UTF8, 0, s.c_str(), -1, 0, 0, 0, 0 );
char * buffer = new char[n]; ::WideCharToMultiByte( CP_UTF8, 0, s.c_str(), -1, buffer, n, 0, 0 ); result = buffer;
delete[] buffer; return result;
}