vscode自动配置cmd和powershell为utf-8编码

2,059 阅读1分钟

在window终端运行c\c++程序时,如果有中文经常出现乱码的情况。

这是因为一般我们源代码文件编码格式时是utf-8,而window自带终端(cmd 和 ps)的编码都是gbk。

虽然可以采用 gbk编码编写源文件,但这并不是推荐的方法。

实际在 cmd 和 ps 中输入 chcp 65001 可以激活 utf-8 代码页。

image.png

这样使用 utf-8编码的源文件生成的可执行文件在终端运行就不会乱码。

但是使用 vscode ,如何每次启动终端自动执行该命令呢?

修改项目的终端编码

在 .vscode 新建 settings.json 文件。

设置两个参数

  • terminal.integrated.profiles.windows 配置windows终端设置
  • terminal.integrated.defaultProfile.windows 在上面配置的终端中选一个作为默认终端

以下是我的配置

{
    "terminal.integrated.profiles.windows": {
        "PowerShell": {
            "source": "PowerShell",
            "icon": "terminal-powershell",
            "args": [ // 启动终端时传入参数
                "-NoExit",
                "chcp 65001"
            ]
        },
        "Command Prompt": {
            "path": [
                "${env:windir}\\System32\\cmd.exe"
            ],
            "args": [ // 启动终端时传入参数
                "/k",
                "chcp 65001"
            ],
            "icon": "terminal-cmd"
        }
    },
    "terminal.integrated.defaultProfile.windows": "PowerShell" // 这里可以选择默认的终端
}

其中关键是可以给cmd 或 powershell 传入的参数

其中 给cmd传入的参数 /K 表示执行后面的命令

给powershell传入的参数 -NoExit 表示不自动退出,如果少了该参数,虽然会执行启动,但一段时间会自动退出。

👌去测试一下,终端是否会自动执行 chcp 65001 ,并且代码也不再乱码了😁

修改全局的终端编码

以上是针对单个项目的设置,如果想全局设置,可以打开vscode设置搜索terminal.integrated.profiles.windows设置,设置方法同修改项目的终端编码一样。