在window终端运行c\c++程序时,如果有中文经常出现乱码的情况。
这是因为一般我们源代码文件编码格式时是utf-8,而window自带终端(cmd 和 ps)的编码都是gbk。
虽然可以采用 gbk编码编写源文件,但这并不是推荐的方法。
实际在 cmd 和 ps 中输入 chcp 65001 可以激活 utf-8 代码页。
这样使用 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设置,设置方法同修改项目的终端编码一样。