vscode 使用code runner 运行代码输出乱码
先指出问题所在:
代码文件使用的编码格式和终端使用的编码格式不一致,查看代码文件右下角,会显示代码文件的编码格式。
测试代码如下:
#include<iostream>
using namespace std;
int main() {
cout<<"你好!";
}
此时输出乱码:
查看右下角的代码文件编码格式,显示为 utf-8
终端输入chcp
, 显示当前终端编码为 936
,即为gbk
。utf-8
为65001
。
可以点击文件右下角,通过编码保存,选择gbk
保存;也可以在终端输入chcp 65001
将终端编码改为utf-8
。这里选择第二种,输入chcp 65001
则代码和终端编码都为utf-8
。
重新运行,正常输出:
但这种方式只是暂时的,如果终端重新打开,则又得重新改。可以在settings.json
中配置终端信息。
点击扩张->设置->在settings.json中设置。
在{}
中输入以下代码
// 设置终端的参数,编码格式等
"terminal.integrated.profiles.windows": {
"Command Prompt": {
"path": "C:\\Windows\\System32\\cmd.exe",
"args": ["-NoExit", "/K", "chcp 65001"]
},
"PowerShell": {
"source": "PowerShell",
"args": ["-NoExit", "/C", "chcp 65001"]
}
},
"terminal.integrated.defaultProfile.windows": "PowerShell", //使用PowerShell 或者Command Prompt作为终端
注意前后的,
否则会影响其他设置。现在,每次打开终端都会设置编码为UTF-8