zoukankan      html  css  js  c++  java
  • VS2013+QT5.3 中文乱码和中文路径不识别

    http://blog.csdn.net/brave_heart_lxl/article/details/7186631

    ubun图中文乱码

    https://blog.csdn.net/u013007900/article/details/50156115

    方法一

    QTextCodec * BianMa = QTextCodec::codecForName ( "GBK" );
    
    QMessageBox::information(this, "提示", BianMa->toUnicode("中文显示!"));
    

      

    方法二

    我们也可以通过QString定义的静态函数,先转换成Unicode类型: 
    QString::fromLocal8Bit("提示") 
    

      

    对于中文常量,使用QStringLiteral即可解决,对于字符串变量,使用QString自带函数也可以轻松解决。

    const char* info = "中文显示"; //不支持
    
    QString strInfo = QStringLiteral(info);//支持
    
    QString strInfo = QString::fromLocal8Bit(info);
    

      

     

     中文乱码

    本方案适用于VS2013+QT5.3环境(编译器是VC)

    using namespace std;
    # pragma execution_character_set("utf-8")
    //文件的开头要声明字符编码UTF-8,这样输出中文字符串就能显示正常。
    qDebug() << " 连接交易前置...成功" ;
    

      

    直接输出字符串是没问题了,但遇到char*[]这样的字符数组的时候显示中文还是会有问题,应该是VS环境下默认是GBK编码

    在MAIN函数中添加设置本地编码GBK

    QTextCodec::setCodecForLocale(QTextCodec::codecForName("GBK"));
    

      在遇到字符数组的时候使用

    QString::fromLocal8Bit(pRspInfo->ErrorMsg)
    

      

    进行转换便能正常显示中文。

    中文路径不识别

    头文件:#include <QTextCodec>

    QString fileName = QFileDialog::getOpenFileName(NULL,"filename","","");  
      
    QTextCodec *code = QTextCodec::codecForName("GB2312");//解决中文路径问题  
    std::string name = code->fromUnicode(fileName).data();  
      
    if(fileName.isEmpty())  
    {  
        return;  
    }  
      
    org = imread(name, 1);  
    

      

  • 相关阅读:
    Spring框架ioc概括
    Hibernate之二级缓存
    Hibernate之HQL
    Hibernate一对多自关联、多对多关联
    数据结构 | 链表:1097 删除重复元素
    数据结构 | 链表:1074
    在pat考试中快速调整Dev-cpp颜色配置
    dijkstra算法的堆优化
    链式前向星-学习笔记
    图的遍历 | 1131地铁图: dfs复杂模拟题
  • 原文地址:https://www.cnblogs.com/kekeoutlook/p/7473048.html
Copyright © 2011-2022 走看看