找回密码
 立即注册
收起左侧

qt输出日志qInstallMessageHandler中文乱码

2
回复
8442
查看
[复制链接]
累计签到:23 天
连续签到:1 天
来源: 2017-9-14 10:36:38 显示全部楼层 |阅读模式
1Qter豆
使用qt输出日志,在main函数安装qInstallMessageHandler(outputMessage),在输入中文时出现乱码,在outputMessage函数中
    QString fileName = QString("%1/%2.txt").arg(filePath).arg(QDate::currentDate().toString("dd日"));    QFile file(fileName);    qDebug()<<fileName;    file.open(QIODevice::ReadWrite | QIODevice::Append);    QTextStream stream(&file);    stream.setCodec("GB2312");    stream << strMessage << "\r\n";    file.flush();    file.close();用了setCodec也还是乱码,utf-8和GBK都试过,请问该怎么解决

最佳答案

查看完整内容

真鄙视你。不告诉别人是怎么解决的 QString str; 原因是qDebug()
回复

使用道具 举报

累计签到:4 天
连续签到:1 天
2017-9-14 10:36:39 显示全部楼层
本帖最后由 yyywill 于 2017-9-22 15:48 编辑

真鄙视你。不告诉别人是怎么解决的
QString str;
原因是qDebug() << str; 输出汉字的问题

这样就可以输出汉字:
qDebug() << str.toUtf8().data();



qDebug() << str.toStdString().c_str();



void outputMessage(QtMsgType type, const QMessageLogContext &context, const QString &msg)函数中设置setCodec无关。

回复

使用道具 举报

累计签到:23 天
连续签到:1 天
2017-9-14 10:50:48 显示全部楼层
好像自己太蠢了,解决了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了