使用Qt5.1.0的qDebug()输出中文都是乱码,debug程序输出中文都是??????。

thinking空 发布于 2013/07/30 15:32
阅读 6K+
收藏 0
Qt

qDebug()输出的中文都是???????,输出时字母或数字就显示正常。程序其余地方的汉字是正常的,代码如下。

QString what=QFileDialog::getOpenFileName(this,tr("open"),QDir::homePath());
 QFileInfo info(what);
 qDebug() <<"绝对路径:"<< info.absoluteFilePath() << endl
 << QObject::tr("文件名:") << info.fileName() << endl
 << QObject::tr("基本名称:") << info.baseName() << endl
 << QObject::tr("后缀:") << info.suffix() << endl
 << QObject::tr("创建时间:") << info.created() << endl
 << QObject::tr("大小:") << info.size();

加载中
0
j
john742
你的源文件是UTF-8编码的吗?qt默认是UTF-8编码可以显示中文的。
thinking空
thinking空
需要把选项-文本编辑器中的编码调整为utf-8.
0
intruder
intruder

引用来自“john742”的评论

你的源文件是UTF-8编码的吗?qt默认是UTF-8编码可以显示中文的。
那其他编码该如何解决,有时候编码不可随意更改
thinking空
thinking空
使用QTextCodec转码,应该可以。
0
東條・スペンサー・咲
東條・スペンサー・咲

tr不是这么用的……又是一个看了别人这么使用tr说解决问题了也就跟着用的鲜活实例……

Qt内部会把所有硬编码的字符按照UTF-8去解析,其他编码首先必须已知编码,然后使用QTextCodec转换成UTF-8然后再由qDebug输出。

thinking空
thinking空
回复 @intruder : 把编码都调成utf-8这样好用,不过直接输出也可以显示中文,先记下。
東條・スペンサー・咲
東條・スペンサー・咲
回复 @intruder : 代码里其实就不该出现硬编码的中文……
intruder
intruder
回复 @thinking空 : 还有别的方法,先用QStringLiteral()把你要输出的汉文套起来。。
thinking空
thinking空
问题已经解决了,谢谢。
返回顶部
顶部