I - 编码字符集
由于不同平台/系统,编码、运行、打印字符集都不相同,中文容易出现乱码或者匹配错误等问题。
Win 平台的编码和运行字符集 (source and execution character set) 可以通过 MSVC 编译器选项设置
/utf-8
或者
/source-charset:utf-8 /execution-charset:utf-8
或者预编译指令
#pragma execution_character_set("utf-8")
打印字符集可以通过 Windows 的 API
SetConsoleOutputCP(65001);
注:代码页 (code page) identifier 65001 对应 utf-8 字符集
II - 高级保存选项
2.1 - 添加高级保存选项
Visual Studio(以下简称 VS)菜单栏文件下拉菜单中如果不包含"高级保存选项 (Advanced Save Option)",需要添加,若包含则可跳过本小节。
首先打开自定义
" 工具 (Tools) " → " 自定义 (Customize) "
切换到" 命令 (Commands) " ,并将 " 菜单栏 (Menu Bar)" 设置为 " 文件 (File) " ,点击右侧的 " 添加命令 (Add Commands...) "
弹出如下窗口,左侧"类别 (Categories)" 子选项选择"文件 (File)" ,右侧"命令 (Commands)" 栏选择"高级保存选项 (Advanced Save Options...)",点击"确定 (OK) " 。
2.2 - 修改文件格式
修改文件,在文件菜单栏选择刚刚添加的"高级保存选项",在弹出窗口
"编码 (Encoding) " 选择 " Unicode (UTF-8 无签名) - 代码页 65001
(Unicode (UTF-8 without signature) - Codepage 65001) " ,
点击 " 确定 (OK) "。
III - 后记
对于 Qt 使用 msvc 编译器的开发,偶数个中文汉字字符串容易引起问题,仍可以设置编码为 utf-8 ,使用
QString::fromUtf8("中文字符");