彻底解决QT5 中文编译不过问题

在windows平台使用Qt5开发时,会出现源码(.cpp或者qml)中包含中文,导致编译不通过,具体的错误代码见下图:

原因分析

出现错误的原因是windows下,QT默认只使用"UTF-8"的编码方式,而中文字体需要"UTF-8-BOM"格式。

解决方法

方法1:(最简单)

在类的构造函数中添加上面两行代码,可以解决该类中包含中文编译不过的问题。

cpp 复制代码
QTextCodec *codec = QTextCodec::codecForName("UTF-8-BOM");
QTextCodec::setCodecForLocale(codec);

方法2:

用notepad++ 打开每个包含中文的源码文件,"Encoding"选择UTF-8-BOM编码,然后保存关闭。

相关推荐
H Journey3 小时前
C++ 强制类型转换
c++·类型转换
‎ദ്ദിᵔ.˛.ᵔ₎3 小时前
map和set
c++
沐雪轻挽萤3 小时前
15. C++17新特性-std::string_view
java·开发语言·c++
小小码农Come on3 小时前
QML怎么使用C++多线程编程
开发语言·c++
love530love4 小时前
修复 ComfyUI 插件 ComfyUI-BiRefNet-ZHO 报错 - Windows
服务器·人工智能·windows·python·birefnet-zho
沛沛rh454 小时前
用 Rust 实现用户态调试器:mini-debugger项目原理剖析与工程复盘
开发语言·c++·后端·架构·rust·系统架构
云栖梦泽4 小时前
Linux内核与驱动:13.从设备树到Platform平台总线
linux·运维·c++·嵌入式硬件
qeen874 小时前
【算法笔记】模拟与高精度加减乘除
c++·笔记·算法·高精度·模拟
txinyu的博客4 小时前
高并发内存池 - 简化版 tcmalloc
c++
少司府4 小时前
C++基础入门:内存管理
c语言·开发语言·c++·内存管理·delete·new·malloc