zoukankan      html  css  js  c++  java
  • QT中QString与string的转化,解决中文乱码问题

    在QT中,使用QString输出到控件进行显示时,经常会出现中文乱码,网上查了一圈,发现大部分都是针对QT4增加4条语句:</span>  
    [cpp] view plain copy
    QTextCodec *codec = QTextCodec::codecForName("UTF-8");  
      
    QTextCodec::setCodecForTr(codec);  
      
    QTextCodec::setCodecForLocale(codec);  
    QTextCodec::setCodecForCStrings(codec);  
    
    
    我使用的是QT5,已经不支持如此设置了,而且这样设置也会存在很多问题。 其实,还有更简单的方法,就是使用我写的如下两个函数:
    
    [cpp] view plain copy
    QString str2qstr(const string str)  
    {  
        return QString::fromLocal8Bit(str.data());  
    }  
      
    string qstr2str(const QString qstr)  
    {  
        QByteArray cdata = qstr.toLocal8Bit();  
        return string(cdata);  
    }  
    
    在需要使用中文QString时,先用string写一个,然后转过去就可以啦,例如:
    
    [cpp] view plain copy
    qlabel->setText(QString(str2qstr(string("支持中文"))));  
  • 相关阅读:
    省选测试28
    省选测试27
    省选测试26
    省选测试25
    省选测试24
    省选测试23
    省选测试22
    省选测试21
    关于maven 导入依赖的最终处理问题
    Dubbo 2 之抽取公共接口
  • 原文地址:https://www.cnblogs.com/amwuau/p/8579035.html
Copyright © 2011-2022 走看看