Qt 中文乱码问题解决方案

时间:2022-04-19 23:27:25

Qt 最头疼的问题就是遇到中文字体乱码问题,因为程序调用的还是插件,没办法调试,

一般的解决方案是:

  1. int main(int argc, char *argv[]) 
  2. {
  3.     QApplication a(argc, argv);
  4.     QTextCodec *codec = QTextCodec::codecForName(“System”);    //获取系统编码
  5.     QTextCodec::setCodecForLocale(codec);
  6.     QTextCodec::setCodecForCStrings(codec);
  7.     QTextCodec::setCodecForTr(codec);
  8.     return a.exec();
  9. }

setCodecForLocale 等函数在QApplication 前后调用都没有关系,

关键是codecForName(“System”)是否返回正确的QTextCodec

"gb18030"

"GB2312"

给定的字符串一定要准确,否则还是会乱码  这里一定要小心;