Qt 最头疼的问题就是遇到中文字体乱码问题,因为程序调用的还是插件,没办法调试,
一般的解决方案是:
- int main(int argc, char *argv[])
- {
- QApplication a(argc, argv);
- QTextCodec *codec = QTextCodec::codecForName(“System”); //获取系统编码
- QTextCodec::setCodecForLocale(codec);
- QTextCodec::setCodecForCStrings(codec);
- QTextCodec::setCodecForTr(codec);
- return a.exec();
- }
setCodecForLocale 等函数在QApplication 前后调用都没有关系,
关键是codecForName(“System”)是否返回正确的QTextCodec
"gb18030"
"GB2312"
给定的字符串一定要准确,否则还是会乱码 这里一定要小心;