how-to-use/cpp_codec.md
2024-07-18 00:39:47 +08:00

2.3 KiB

测试C++字符串在GBK环境下的乱码情况

当然可以将终端编码类型改为UTF-8来实现通用情况,但是更多的情况下,windows终端因为各种原因只能使用GBK的环境不能更改他的编码,因此有此测试,当然测试也可能包含输出不为GBK的情况用于参考或者记录。

**注:**源码编码统一为UTF-8,如果是MSVC均为使用/source-charset:utf-8实现输出为GBK

std::string

可用性 编译器 是否使用了u8 测试环境 源码编码 输出编码 控制台编码/是否乱码 调试器是否乱码
MinGW64 VSCode UTF-8 GBK GBK,正常 不识别其内容是\326形式
MinGW64 VSCode UTF-8 UTF-8 GBK,乱码 正常
MinGW64 VSCode UTF-8 UTF-8 GBK,乱码 正常
MSVC VSCode UTF-8 GBK GBK,正常 正常
MSVC QtCreator UTF-8 GBK GBK,乱码 正常
MSVC QtCreator UTF-8 GBK GBK,正常 乱码

QString

Qt6删除库配置中的-utf-8选项才行,否则输出为UTF-8

可用性 编译器 是否使用了u8 测试环境 源码编码 输出编码 控制台编码/是否乱码 调试器是否乱码
MSVC VSCode UTF-8 GBK GBK,正常 正常
MSVC QtCreator UTF-8 GBK GBK,正常 正常
MSVC QtCreator UTF-8 GBK GBK,乱码 乱码
MSVC VSCode UTF-8 GBK GBK,乱码 乱码