关于Qt中文一个奇怪的现象

Albert_song 2019-02-27 06:23:48
以单步调试模式运行到下面代码
QString str("你好");
if(str == "你"){
qDebug()<<"你";
}else if(str == "你好"){
qDebug()<<"你好";
}

会将调试器卡住。
我的qt是:Qt Creator 4.7.1 (Based on Qt 5.11.2 (MSVC 2015, 32 bit))
编译器是:Microsoft Visual C++ compiler 14.0 amd64_x86
调试器是:Windows Kits\10\Debuggers\x86\cdb.exe

不知有人是否遇到过此类现象,还请告知是什么原因,谢谢
...全文
1622 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
Albert_song 2019-06-04
  • 打赏
  • 举报
回复
结帖吧,不折腾了,感觉是哪个地方没配置好,我重新装一下就行了,感谢大家
浮一大白开水 2019-05-31
  • 打赏
  • 举报
回复
我使用VS2015+QTV5.12 64位程序,相同代码F10、F11调试无此问题。你试一下配置属性-常规-字符集,设置为多字节字符集,看看行不行。
Albert_song 2019-05-30
  • 打赏
  • 举报
回复
使用QString::fromlocat8bit("你好");问题依旧,代码里有中文的地方,F10就过不去
Albert_song 2019-05-30
  • 打赏
  • 举报
回复
不调试情况下,debug和release版都可以
GloriceM 2019-04-24
  • 打赏
  • 举报
回复
不调试直接运行正常吗?release版正常吗?
浮一大白开水 2019-04-19
  • 打赏
  • 举报
回复
使用QString::fromlocat8bit("你好");试一下呢
未狂 2019-04-18
  • 打赏
  • 举报
回复
msvc编译器,在中文前加u8试试 QString str=u8"中文" 这样的
Albert_song 2019-04-18
  • 打赏
  • 举报
回复

还是一样卡住,不知道是不是调试器问题,我在Linux Qt(5.2)上是完全可以的
浮一大白开水 2019-04-16
  • 打赏
  • 举报
回复
中文的问题吧。
Albert_song 2019-04-16
  • 打赏
  • 举报
回复
一样的,连QString("你好")都卡住,构造不出来
不易易 2019-04-07
  • 打赏
  • 举报
回复
str.compare(QString("你好");
str.compare(QString::fromLocal8bit("你好"));
这样呢?
Albert_song 2019-03-01
  • 打赏
  • 举报
回复
用compare 也不行,好像是卡在strlen上,即const char*转QString时会有strlen调用
不易易 2019-02-28
  • 打赏
  • 举报
回复
用 QString 的compare函数比较吧,str.compare(....)

16,216

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧