vscode控制台乱码踩雷并解决
就是故意的_
2024年11月15日 16:31

因windows中文版系统cmd编码默认为GBK,而vscode默认新建文件的编码为UTF-8所以会出现中文乱码情况

网上搜到的一些方案

1.勾选Beta版使用Unicode UTF-8

缺点:运行其他软件时可能出现乱码

2.将vscode默认编码方式改为GBK

缺点:在外部控制台乱码了,但是调试程序时在内部控制台仍然乱码

3.注册表编辑器

计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor,双击打开autorun设置值为chcp 65001 > nul

缺点:需要代码在main函数开头再加一段system("pause");否则无效果

4.在setting.json中修改

 "PowerShell": {

      "source": "PowerShell",

      "icon": "terminal-powershell",

      "args": ["-NoExit", "/c", "chcp 65001", ">null"]

     },

     // 配置cmd

     "cmd": {

       "path": "cmd.exe",

       "icon": "terminal-cmd",

       "args": ["/K chcp 65001 >nul"]

     }

再将terminal.integrated.defaultProfile.windows设为 powershell

缺点:只更改了vscode内部控制台为UTF-8编码,外部cmd仍然乱码

以上几条解决方案要么只能兼顾外部控制台或者内部控制台一边为GBK或UTF-8,要么有很大的副作用。能不能将所有控制台都显示为UTF-8编码呢?


1.代码格式设为默认UTF-8

2.设置powershell默认打开为UTF-8编码

打开cmd,右键标签点击设置,更改poweshell命令行为

powershell.exe -NoExit chcp 65001

3.设置运行时默认打开外部控制台,并设置为powershell

terminal  external 

我的路径为C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe

4.设置内部控制台为UTF-8编码

在setting.json中修改

 "PowerShell": {

      "source": "PowerShell",

      "icon": "terminal-powershell",

      "args": ["-NoExit", "/c", "chcp 65001", ">null"]

     },

     "cmd": {

       "path": "cmd.exe",

       "icon": "terminal-cmd",

       "args": ["/K chcp 65001 >nul"]

     }

再将terminal.integrated.defaultProfile.windows设为 powershell

5.此时又发现直接打开.exe打开的cmd窗口仍为GBK格式,更改.exe打开默认为UTF-8编码

按下 win + R 键,输入 regedit 回车打开注册表编辑器(regedit)。

转到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage项。

在右侧窗格中,找到"OEMCP"和"ACP"两个键值。

双击"OEMCP"键值,修改为65001表示UTF-8编码,然后点击OK按钮保存更改。

双击"ACP"键值,修改为65001表示UTF-8编码,然后点击OK按钮保存更改。

完成,此时所有控制台终端打开均为UTF-8编码,终于舒服了。