Qt中文乱码问题

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

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


image.png

解决办法

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


    Qt中文乱码问题_第1张图片
    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种编码进行保存,发生的现象如下表所

Qt中文乱码问题_第2张图片
image.png
  • 其他方案参考

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

尝试后无效

你可能感兴趣的:(Qt中文乱码问题)