• 10975阅读
  • 12回复

[提问]Qt5 qDebug调试时乱码 [复制链接]

上一主题 下一主题
离线yuyu414
 

只看楼主 倒序阅读 楼主  发表于: 2015-11-18



Qt5.5.1  qDebug输出中文,运行时没问题,但是调试模式就会乱码,看图,不知道有没有人遇到,怎么解决,谢谢各位了,还有5.4,4.7,4.6版本都试过了,同样的问题
离线morg

只看该作者 1楼 发表于: 2015-11-18
需要toStdString().c_str().

如:        qDebug()    << QString("中文显示").toStdString().c_str() << endl ;
离线morg

只看该作者 2楼 发表于: 2015-11-18
需要toStdString().c_str().

如:        qDebug()    << QString("中文显示").toStdString().c_str() << endl ;
离线yuyu414

只看该作者 3楼 发表于: 2015-11-18
回 morg 的帖子
morg:需要toStdString().c_str().
如:        qDebug()    << QString("中文显示").toStdString().c_str() << endl ; (2015-11-18 13:13) 

这样的话其实就是 qDebug()  << "中文显示";   还是不行
离线jxgyzhang

只看该作者 4楼 发表于: 2015-11-18
QStringLiteral("中文");
如果是使用VS编译器可以加个定义

#pragma execution_character_set("utf-8")
离线yanwuyue

只看该作者 5楼 发表于: 2015-11-19
离线lzh280

只看该作者 6楼 发表于: 2015-11-19
Qt 5.1.1 与 Qt5.5.0 输出结果不一样,是否两个版本中 QString 编码处理方式不一样?

//5.1.1
qDebug() << QString("你好!");     //输出:"你好!"
qDebug() << QString("你好!").toStdString().c_str();   //输出:你好!

//5.5.0
qDebug() << QString("你好!");     //输出:"\u4F60\u597D\uFF01"
qDebug() << QString("你好!").toStdString().c_str();   //输出:你好!

离线yuyu414

只看该作者 7楼 发表于: 2015-11-19
回 lzh280 的帖子
lzh280:Qt 5.1.1 与 Qt5.5.0 输出结果不一样,是否两个版本中 QString 编码处理方式不一样?
//5.1.1
qDebug() << QString("你好!");     //输出:"你好!"
qDebug() << QString("你好!").toStdString().c_str();  .. (2015-11-19 08:37) 

5.5.0对qDebug有做修改,被强烈反应后再5.5.1又改回来了
离线yuyu414

只看该作者 8楼 发表于: 2015-11-19
回 jxgyzhang 的帖子
jxgyzhang:QStringLiteral("中文");
如果是使用VS编译器可以加个定义
#pragma execution_character_set("utf-8")
 (2015-11-18 16:13) 

用的mingw
离线yuyu414

只看该作者 9楼 发表于: 2015-11-19
回 yanwuyue 的帖子
yanwuyue:http://www.qtcn.org/bbs/apps.php?q=diary&a=detail&did=2053 (2015-11-19 08:22) 

用的是mingw,不知道为什么这么多人用vs,不考虑跨平台吗,vs那么笨重,QtCreator挺好用
离线lzh280

只看该作者 10楼 发表于: 2015-11-19
回 yuyu414 的帖子
yuyu414:5.5.0对qDebug有做修改,被强烈反应后再5.5.1又改回来了 (2015-11-19 15:07) 

很少使用调试模式,也没留意 qDebug() 中文输出。
试了下,Qt5.5.1 下正常运行qDebug() << QString("你好!"); 输出正常。
但进入调试模式后,输出乱码。
离线yuyu414

只看该作者 11楼 发表于: 2015-11-25
回 lzh280 的帖子
lzh280:很少使用调试模式,也没留意 qDebug() 中文输出。
试了下,Qt5.5.1 下正常运行qDebug() << QString("你好!"); 输出正常。
但进入调试模式后,输出乱码。 (2015-11-19 21:43) 

对的  我也是这么个情况 问题是我换了4.8.6也是这个情况  只有5.3.2不会有问题
离线lzh280

只看该作者 12楼 发表于: 2015-11-27
是否跟调试器 gdb 编码有关呢?
快速回复
限100 字节
 
上一个 下一个