0
点赞
收藏
分享

微信扫一扫

彻底解决QT写中文日志乱码,含源代码

SPEIKE 2022-01-28 阅读 125

设置办法

1、将CPP文件编码格式修改为UTF8-bom,可拷贝到windows,然后用notepad++进行格式转换;

2、日志文件函数如下:

#include <QCoreApplication>

#include<QDateTime >

#include <QDir >

#include <QFile >

#include <QTextStream >

void WriteLog(QString str)
{
    QDateTime currentTim = QDateTime::currentDateTime();

    //创建文件夹
    QString fileName = currentTim.toString("yyyyMMdd")+"_DataLog.log";
    QString strCurrentPath = QCoreApplication::applicationDirPath()+"/log/newdataconvert/"+fileName;

//防止文件夹不存在,导致写入失败
    QDir parentPath(QCoreApplication::applicationDirPath()+"/log/newdataconvert");
    if(!parentPath.exists())
    {

       //创建文件夹
        parentPath.mkpath(QCoreApplication::applicationDirPath()+"/log");
        parentPath.mkpath(QCoreApplication::applicationDirPath()+"/log/newdataconvert");
    }
    QFile writefile(strCurrentPath);
    writefile.open(QIODevice::WriteOnly | QIODevice::Append);//如果不存在则创建后写入
    QTextStream out(&writefile);
    out.setCodec(QTextCodec::codecForName("UTF8"));//设置编码格式
    out<<str<<"\r\n";
    writefile.close();
}

3、调用WriteLog(QString::fromLocal8Bit("我是xx123")),注意文字内容需要用QString::fromLocal8Bit进行转换

日志写入乱码解决完成

举报

相关推荐

0 条评论