Qt的编码问题

    最近公司的项目准备由自写与MFC的混合控件转型到Qt,在做demo的过程中发现Qt在代码中设置的按钮文本显示出来却是乱码,就想Qt是unicode的,然后就把项目属性中的字符集改成unicode并把源码的文本格式改为utf8,然后问题来了,原来项目中一些涉及字符转换的都报错了,对于项目编码与源代码文本编码任然没有彻底搞懂,无奈只有改回多字节。关于编码还希望有人能指点一下。

    先解决问题,可以将Qt的编码设置为当前系统编码,就可以解决乱码的问题(先感谢一下博主:http://blog.sina.com.cn/s/articlelist_2801495241_0_1.html):

   

#include "test.h"
#include 
  
  
   
   
#include 
   
   
    
    
int main(int argc, char *argv[])
{
    QTextCodec *m_pTextcodec=QTextCodec::codecForName("System";);//获取系统编码
    QTextCodec::setCodecForCStrings(m_pTextcodec);  //设置字符常量、QByteArray构造QString对象时使用的编码方式
    QTextCodec::setCodecForLocale(m_pTextcodec);//设置对本地文件系统读写时候的默认编码格式
    QTextCodec::setCodecForTr(m_pTextcodec);//设置传给tr函数时的默认字符串编码

    QApplication a(argc, argv);
    test w;
    w.show();
    return a.exec();
}
   
   
  
  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值