首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

QT中文乱码有关问题

2012-01-30 
QT中文乱码问题求助我的系统是linux的,我在main函数中设置字符编码格式为gb2312,QTextCodec *codec QTex

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("想要输出的内容");这样写

热点排行