永发信息网

unicode环境下MFC中文字符串比较的问题

答案:1  悬赏:70  手机版
解决时间 2021-04-07 01:24
  • 提问者网友:情歌越听越心酸
  • 2021-04-06 04:33
unicode环境下MFC中文字符串比较的问题
最佳答案
  • 五星知识达人网友:長槍戰八方
  • 2021-04-06 04:43
字符串比较用strcmp试试。追问这不是比较字符数组的吗追答不好意思,搞错了。
if(ConnectInfo[11].Mid(27,2)==_T("已开启"));
问题应该是在Mid(27,2)这里的2上,一个中文占2个字节。是Mid的范围取错了。追问啊,我代码改过很多遍,所以这里是现打出来的。原先没有用Mid也是不行的(整条字符串比较)…然后用Mid(27,6)也试过,都不行追答CStringW原型为typedef ATL::CStringT< wchar_t, StrTraitMFC_DLL< wchar_t > > CStringW;
是宽字节类型,一个中文就size就为1。
例如:
CStringW str = _T("我们是祖国的花朵");
CStringW s = str.Mid(3, 2);
//s = "祖国"
自己看着改改。追问CStringW 可以在MessageBox正确显示吗,我试过的是乱码,会不会读取文本的代码有问题追答我直接给CStringW赋值,测试MessageBox正常。你用调试一下看看数据有没有异常。追问那是不是我的赋值部分的问题呢就是读取文本的代码部分我试验过了,不行啊…我感觉是读取txt文本文件时出的岔子…追答也许吧,打个断点,调试看看就知道。追问呜呜~~ConnectInfo[11]是介货……" ״̬ : δÆô¶¯"
怎么办才能读取中文啊
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯