QT中文乱码问题求助
我的系统是linux的,我在main函数中设置字符编码格式为gb2312,
QTextCodec *codec = QTextCodec::codecForName("gb2312");
QTextCodec::setCodecForLocale(codec);
QTextCodec::setCodecForCStrings(codec);
QTextCodec::setCodecForTr(codec);
我在项目中定义了一个 QString curPath = QCoreApplication::applicationDirPath ();或许当前程序的运行路径(中文路径)。
调用QDebug()<<curPath。打印的这个curPath为乱码,如果我这样用:
Label lb = new Label();
lb->setText(curPath);
这时是正常的,请大侠们帮忙看看,这个问题如何解决,万分感激。
[解决办法]
//第一种
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("GB2312"));// 1
QTextCodec::setCodecForLocale(QTextCodec::codecForName("GB2312"));// 2
QTextCodec::setCodecForTr(QTextCodec::codecForName("GB2312"));// 3 如上三句是关键语句
//第二种(本人感觉这种最好用 直接放在main方法中就OK啦)
QTextCodec *codec = QTextCodec::codecForLocale(); //文本为GB2312编码
QTextCodec::setCodecForLocale(codec); //设置本地编码
QTextCodec::setCodecForCStrings(codec); //设置字符串编码
QTextCodec::setCodecForTr(codec); //设置使用tr内的编码
这俩种方法都是直接放在main里面就行啦 打印的时候你可以qDebug()<<tr("想要输出的内容");这样写