From a06fe0f5a13d24210df0cec0feef31eb752241ba Mon Sep 17 00:00:00 2001 From: duanshengchao <519970194@qq.com> Date: Fri, 18 Jul 2025 10:22:29 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E4=BF=AE=E5=A4=8D=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=BA=93=E9=93=BE=E6=8E=A5=E9=94=99=E8=AF=AF=E6=89=93=E5=8D=B0?= =?UTF-8?q?=E8=87=B3log=E6=96=87=E4=BB=B6=E4=B8=AD=E7=9A=84=E4=B9=B1?= =?UTF-8?q?=E7=A0=81=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- source/dbManager.cpp | 3 ++- source/logger.cpp | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/source/dbManager.cpp b/source/dbManager.cpp index 9ceb9aa..3b0ca9c 100644 --- a/source/dbManager.cpp +++ b/source/dbManager.cpp @@ -108,6 +108,7 @@ bool DatabaseManager::connect(const QString& strConnectionName) db.setDatabaseName(config.strDBName); db.setUserName(config.strUserName); db.setPassword(config.strPassword); + db.setConnectOptions("client_encoding=UTF8"); if(!db.open()) { @@ -115,7 +116,7 @@ bool DatabaseManager::connect(const QString& strConnectionName) LOG_ERROR("DB", QString("DB: %1 open failed. connectionName: %2. error: %3") .arg(config.strDBName) .arg(strConnectionName) - .arg(QString::fromLocal8Bit(errorText.toLatin1()))); + .arg(errorText/*QString::fromUtf8(errorText.toUtf8())*/)); emit errorOccurred(strConnectionName, QString::fromWCharArray(L"数据库打开失败,详情可见日志文件")); db.close(); db = QSqlDatabase();//重置为无效数据库对象,在下面remove的时候就不会出现"connection '***' is still in use, all queries will cease to work"的警告 diff --git a/source/logger.cpp b/source/logger.cpp index 5e83bec..68248f4 100644 --- a/source/logger.cpp +++ b/source/logger.cpp @@ -101,6 +101,7 @@ void Logger::writeToFile(const QString& message) } //打开文件时先键入一个换行符 QTextStream stream(&m_logFile); + stream.setEncoding(QStringConverter::Utf8);//强制UTF-8编码 stream << Qt::endl; stream.flush(); //刷新输出缓冲区,确保数据立即写入文件 }