Qt中文乱码问题

Qt在显示中文时会出现乱码或者编译不过的情况

主要由以下问题造成 ,在Qt+VS的搭建的环境下,如果源码文件保存为UTF-8不带Bom的格式的话,如果文件中出现中文会出现编译不过错误如下


image.png

解决办法

  • 修改IDE设置如下图, 然后重新修改保存将源码文件转换为utf-8带BOM的格式


    image.png
  • 又或者是改为GBK编码,但这样做会出现另外一个问题,中文显示会出现乱码,解决办法是设置中文时使用

    image.png

    QString::fromLocal8Bit函数进行转换就可以正常显示
    QStringLiteral 也能达到同样的效果

  • 不用每个中文字符都添加转换的方法,在源文件添加一下代码
    #if _MSC_VER >= 1600
    #pragma execution_character_set("utf-8")
    #endif

  • 针对乱码问题可以参看表格,这里只列举大家最常用的3个编译器(微软VS的中的cl,Mingw中的g++,Linux下的g++),源代码分别采用GBK和无BOM的UTF-8以及有BOM的UTF-8这3种编码进行保存,发生的现象如下表所

image.png
  • 其他方案参考

http://blog.163.com/qimo601@126/blog/static/1582209320143115334438/

尝试后无效

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 以下是dbzhang关于qt中文乱码问题原因的阐述,觉得不错: 首先呢,声明一下,QString 是不存在中文支持...
    andyhacker阅读 1,386评论 0 3
  • 为什么会出现乱码 首先,我们需要有的概念是乱码的问题是由编码和解码方式引起的。涉及到编码方式的地方有3个: 源码字...
    Crawl_W阅读 7,347评论 2 11
  • 文章总结在最后面,想快速解决问题的可以直接拉到最后。 一、使用变量显示中文字符 到QT5以后,一般情况下要显示中文...
    梦远心沉阅读 6,227评论 1 1
  • 你使用时间的方式,其实就是塑造你自己的方式。
    禾苗青青阅读 146评论 0 0
  • 1、[endif]淘宝活动(DSR达到4.6级以上):日常活动,大型活动,节日活动 [、[endif]中国制造条件...
    回_940阅读 214评论 0 0