问题现象:
有时候当你在 文件路径,程序注释,标识符 中使用了中文时,在打印编译输出时相应的位置可能会输出一些乱码
原因:
影响输出编码的主要因素如下:
编译器输出使用的字符集;一般都是 ANSI(即跟随操作系统设置,中文操作系统默认就是 GBK), GCC 10.x 和 armclang 使用 UTF-8 字符集
构建系统输出的字符集:在编译时,编译器产生的输出将转发给 unify_builder.exe 进行打印,它是一个 .NET 程序,使用操作系统默认代码页作为默认字符集(即ANSI),如果你的操作系统设置为中文,那么就使用 GBK 字符集。
源文件的字符集;源文件所使用的字符集,在 vscode 上,默认都是 UTF-8,也可以在底部状态栏上进行查看
因此,如果 编译器输出使用的字符集,构建系统输出的字符集,源文件的字符集 三者不一致,就会出现乱码现象
解决办法:
请根据上述因素,检查你的字符集设置
对于 GCC 10.x,armclang 的输出乱码,后面的版本将进行修复
建议:
最好在 文件路径,程序注释 中全部使用 英文,源文件使用 ASCII 编码,这样可以避免很多跟编码相关的问题