解决Qt打印中文字符出现乱码

在 Windows 平台上,默认的控制台编码可能不是 UTF-8,这可能会导致中文字符的显示问题。

下面是在 Qt 应用程序中设置中文字体,并确保控制台输出为 UTF-8 编码:
 

1. Qt 应用程序代码

在 Qt 中,我们可以使用 QApplication 来创建应用程序实例,并且通过 QFont 设置应用程序的字体。为了确保中文字符能够正确显示,可以选择一个常见的中文字体(例如 "Microsoft Yahei")。另外,对于 Qt 5 及以下版本,我们还需要设置文本编码为 UTF-8 来确保支持中文字符。

#include <QApplication>
#include <QFont>
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
#include <QTextCodec>
#endif

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

    // 设置中文字体
    a.setFont(QFont("Microsoft Yahei", 9));

#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
    // 设置本地编码为UTF-8
    QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8"));
#endif

    // 启动应用程序
    return a.exec();
}

2. 控制台设置为 UTF-8 编码