QT5 中文乱码

qt5 中文乱码,可以在程序中设定使用的字体和编码

    QApplication a(argc, argv);

    //设置中文字体
//    a.setFont(QFont("wenquanyi", 16));


    int id = QFontDatabase::addApplicationFont("./msyh.ttf");

    QString msyh = QFontDatabase::applicationFontFamilies(id).at(0);

    QFont font(msyh, 10);

    font.setPointSize(16);

    a.setFont(font);

    //设置中文编码
#ifdef _MSC_VER
    QTextCodec *codec = QTextCodec::codecForName("GBK");
#else
    QTextCodec *codec = QTextCodec::codecForName("UTF-8");
#endif

#if (QT_VERSION <= QT_VERSION_CHECK(5,0,0))
    QTextCodec::setCodecForLocale(codec);
    QTextCodec::setCodecForCStrings(codec);
    QTextCodec::setCodecForTr(codec);
#else
    QTextCodec::setCodecForLocale(codec);
#endif

    a.installTranslator(&translator);

    MainWindow w;

    w.show();

    return a.exec();
原文地址:https://www.cnblogs.com/nanqiang/p/14006455.html