专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > QT开发

QT中文乱码有关问题

发布时间:2010-05-30 21:35:05 文章来源:www.iduyao.cn 采编人员:星星草
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("想要输出的内容");这样写
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: