一般设置解决乱码问题为:
QTextCodec *codec = QTextCodec::codecForName("system");
QTextCodec::setCodecForCStrings(codec);
QTextCodec::setCodecForLocale(codec);
QTextCodec::setCodecForTr(codec);
几天编码时间遇到,如果用上面的方法可以解决界面中文显示乱码问题,但是加载Linux数据库数据显示在界面时间,中文乱码,
如果把system改成 utf-8后,界面又会乱码,
此时,需要里面上面四条语句的含义:
QTextCodec::setCodecForTr 只与QString str = tr("中文") 相关,解决乱码是tr("中文")
QTextCodec::setCodecForLocale 只与QString str =QString::fromLocal8Bit("中文") 相关
我自己问题的解决方法为:
QTextCodec *codec = QTextCodec::codecForName("UTF-8");
QTextCodec::setCodecForCStrings(codec);
QTextCodec::setCodecForTr(QTextCodec::codecForName("system"));
QTextCodec::setCodecForLocale(QTextCodec::codecForName("system"));