开启方式
微软在1803版本开始就添加了非Unicode应用使用 UTF-8 编码方式,建议充分了解后再选择开启与否。
效果
开启之后记事本编码默认变成UTF-8
,打开之前gbk
编码下保存的txt会乱码。 Visual Studio 默认保存编码也会变成UTF-8。着实在跨平台方面方便了许多。
产生的问题及部分问题的解决方案
首先就是控制台中文乱码,我们用Visual Studio 生成的exe都会输出乱码,因为控制台还保留着原来GBK
的编码方式。
解决方式
更改控制台编码为UTF-8(需要更改注册表)
用win+R
打开运行,输入regedit
打开注册表编辑器,定位到
HKEY_CURRENT_USER\Console%SystemRoot%_System32_WindowsPowerShell_v1.0_powershell.exe
右边有个CodePage
项,默认为
十进制的936(GBK ),将此项修改为十进制的65001(如果有cmd.exe可以一并更改)
这样还顺带解决了新控制台输出中文乱码的BUG。
新的问题
由于更改了控制台的编码方式,之前在GBK(GB2312)格式下编写的所有exe都不能正确输出。比如程序d是我之前在GBK编码下生成的,可以看到不能正常输出
新的解决方式
临时更改控制台编码为GBK,命令为chcp 936
未解决的问题
VS Code 下不能正常调试C++代码
编译成功但是不能调试
不知道有没有人遇到过此问题或者有解决办法的,希望能留言帮忙。