如 wstring str1 = _T("未识别");
wstring str2 = _T("$$"); str1 +=str2; 的结果是str1= _T("未识?$") 这是怎么回事呢?
解决方案 »
- writefile怎样把要写入的内容追加到文本文件的最后,而不是替换文本原有的内容?
- 如果本机80端口已经打开,我做的软件复用80端口对外连接,防火墙会报警嘛
- 大家推荐一本计算机网络方面编程的好书吧(不是WEB开发哈)
- LISTBOX控件的问题,大家进来看看
- 提一个关于无模式对话框的初级问题,求教~!
- 请问怎么让主对话框控制有模对话框?
- 急......哪里有Rational Rose 企业版的注册码?谢谢.
- 新手问一个简单问题
- 这种问题也没有人知道吗!!!怎么向RichEdit中插入图片?
- 怎样让程序停留指定的时间间隔?
- 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;
}