目录
针对不同操作系统和编译器环境下Qt中文字符串乱码问题,解决方案需综合考虑编码统一性、编译器配置及跨平台适配。以下是分场景的解决方案总结:
一、核心解决思路
中文乱码的本质是源码字符集、编译器解析字符集、运行时字符集三者不统一。核心原则是统一所有环节为UTF-8编码,并根据编译器和操作系统差异调整配置。
二、分场景解决方案
1. 源文件编码统一
- 所有平台:
-
将源码文件(.cpp/.h/.ui)保存为UTF-8 BOM格式(Windows必须,Linux/macOS可选)。
-
在Qt Creator中设置默认编码:
工具 -> 选项 -> 文本编辑器 -> 行为 -> 默认编码:UTF-8(勾选“Add BOM for UTF-8”)。
-
若使用Visual Studio,通过插件(如ForceUTF8)强制保存为UTF-8 BOM格式。
-
2. 编译器配置
- Windows + MSVC:
在.pro文件中添加以下配置,强制源码和执行字符集为UTF-8