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(); //刷新输出缓冲区,确保数据立即写入文件 }