zoukankan      html  css  js  c++  java
  • Qt Windows/Linux支持中文编码

    Qt中经常需要用到中文,不论是字符串还是路径名。还好Qt提供了QTextCodec类,该类具有强大的编码格式转换功能,提供了世界上大多数常用的字符编码格式。

    Qt中使用QString的字符串采用的是Unicode编码,我们使用的Windows系统是GBK编码(一种中文编码),linux下通常使用的是UTF-8编码。

    1.Windows下是使用中文

    在main()函数内添加如下:

    1 #include <QTextCodec>
    2 
    3 QTextCodec::setCodecForLocale(QTextCodec::codecForName("GBK")); //路径名支持中文
    4 QTextCodec::setCodecForTr(QTextCodec::codecForName("GBK")); //QString支持中文
    5 QTextCodec::setCodecForCStrings(QTextCodec::codecForName("GBK")); //string支持中文

    2.Linux下

    将上面的"GBK"换作"UTF-8"。

    3.其他情况

    有时,即使进行了上面的添加,在其他的文件内使用中文时还是会出现乱码的情况(你还不说,我真遇到过,之纠结。。。)。这时,有另外的解决办法

    比如QString类型的tr("中文"),这里本来该显示"中文"的结果显示了乱码,那么将tr("中文")替换为

    QTextCodec::codecForName("GBK")->toUnicode("中文")

    这样就会正常显示中文了。实际上这也是一种防止中文出现乱码的解决方法,只是这样的话每个有QString串中文的地方都要做如此修改,这也没办法,谁让加了那三句话还是乱码呢。

    4.题外话

    当然,Qt提供了各国语言的翻译,。不过我们写的程序只是国内用,所以用不着那么高端的功能,在程序中都写成中文就是。

  • 相关阅读:
    小程序开发 access_token 统一管理
    python操作mysql
    Mac版本的idea非正常关闭后,idea打开项目大面积报红
    PySpider爬取去哪儿攻略数据项目
    Python3.9安装PySpider步骤及问题解决
    Selenium 自动化测试工具
    Python 抓取猫眼电影排行
    Python爬虫基本库
    Python 创建一个Django项目
    Python 数据可视化
  • 原文地址:https://www.cnblogs.com/Romi/p/2474149.html
Copyright © 2011-2022 走看看