关于QT 打印中文 乱码问题

打印qDebug() << "创建/打开 数据库成功!";

实际终端窗口打印鍒涘缓/鎵撳紑 鏁版嵁搴撴垚鍔燂紒

这是典型的 UTF-8 编码字符串被错误地以 GBK(或 CP936)编码解析 所导致的乱码。

这说明:

程序内部已经正确使用了 UTF-8(源文件是 UTF-8)

但 控制台(Console)显示时用了 GBK 编码,导致乱码

✅ 最佳解决方案(Windows)

✅ 步骤 1:确保源文件为 UTF-8 without BOM

在 Qt Creator 或编辑器中:

右键 .cpp 文件 → 另存为 → 编码选择 UTF-8(不要带 BOM)

✅ 步骤 2:在 main() 中切换控制台编码为 UTF-8

cpp 复制代码
#include <QCoreApplication>
#include <QDebug>

#ifdef Q_OS_WIN
    #include <cstdlib> // for system()
#endif

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

#ifdef Q_OS_WIN
    system("chcp 65001 > nul"); // 切换到 UTF-8 编码
#endif

    qDebug() << "创建/打开 数据库成功!";

    return a.exec();
}
相关推荐
赵渝强老师31 分钟前
【赵渝强老师】PostgreSQL中表的碎片
数据库·postgresql
blasit1 小时前
笔记:Qt C++建立子线程做一个socket TCP常连接通信
c++·qt·tcp/ip
华仔啊1 小时前
Stream 代码越写越难看?JDFrame 让 Java 逻辑回归优雅
java·后端
ray_liang1 小时前
用六边形架构与整洁架构对比是伪命题?
java·架构
Ray Liang2 小时前
用六边形架构与整洁架构对比是伪命题?
java·python·c#·架构设计
Java水解3 小时前
Java 中间件:Dubbo 服务降级(Mock 机制)
java·后端
全栈老石5 小时前
拆解低代码引擎核心:元数据驱动的"万能表"架构
数据库·低代码
SimonKing7 小时前
OpenCode AI辅助编程,不一样的编程思路,不写一行代码
java·后端·程序员
FastBean7 小时前
Jackson View Extension Spring Boot Starter
java·后端
Seven978 小时前
剑指offer-79、最⻓不含重复字符的⼦字符串
java