• 谈谈 Qt4 中文乱码的解决


            本文只描述Qt4的解决方法,Qt5没有尝试过,不做讨论。网上关于这个话题一搜一大堆,基本无外乎字符集编码的理论,看不明白。直接上代码吧!

            

    #include "widget.h"
    #include <QApplication>
    #include <QTextCodec>
    
    int main(int argc, char *argv[])
    {
        QApplication a(argc, argv);
    
        QTextCodec::setCodecForLocale(QTextCodec::codecForName(QTextCodec::codecForLocale()->name()));
        QTextCodec::setCodecForTr(QTextCodec::codecForName(QTextCodec::codecForLocale()->name()));
        QTextCodec::setCodecForCStrings(QTextCodec::codecForName(QTextCodec::codecForLocale()->name()));
    
        Widget w;
        w.show();
    
        return a.exec();
    }

            一般我的项目里在 main.cpp 文件里都会加上这三句代码,中文显示都能正常显示。

            QTextCodec : 这个类提供文本编码之间的转换。

            QTextCodec::codecForLocale()->name() : 这个成员函数返回最适合此语言环境的编解码器的指针。

            QTextCodec::codecForName() :  这个成员函数返回与参数指定的名称最匹配的编解码器指针。如果没有匹配的则返回 0 。

             QTextCodec::setCodecForLocale / QTextCodec::setCodecForTr / QTextCodec::setCodecForCStrings :  这个成员函数设置参数指定的编解码器。

  • 相关阅读:
    对白
    泰芒了
    下雨
    聚会
    周末了
    One English Sentence
    Struts拦截器使用
    JAVA语法题
    jquery全选框的实现
    实战3--设计实体, 映射实体
  • 原文地址:https://www.cnblogs.com/RecreateBySelf/p/13500275.html
Copyright © 2020-2023  润新知