VSCode中控制台中文乱码的原因分析:VSCode 与 cmd 两者之间的编码方式不一样;VSCode 默认是 utf-8 编码,而在中国地区下的 Windows 的 cmd 默认是 GBK 编码。
既然原因找到了,我们只需要确认下VSCode项目中文件的编码和调试或运行下vscode内嵌的编码,并调整下两边的编码一致即可。
现在我们查看下项目的文件编码,查看vscode右下角的状态栏
可以看到是UTF-8, 这个地方点击可以修改文件编码。如果文件编码是UTF-8, 代码中的中文也是UTF-8; 同理如果是GBK, 代码中的中文也是GBK;
查看下控制台的文件编码,vscode控制台运行 > chcp
我们可以看到输出是936, GBK2312的代码页编码就是936, 而UTF-8的代码页编码是65001;
现在可以看出文件的编码UTF-8和控制台编码GBK不一样,导致中文乱码;
解决方案也就就处理了:
方法一: 调整文件编码为GBK; (问题是说好了的国际化呢?我要是在linux上面运行怎么办?而且点击修改状态栏的编码,只能对新增文件有效。此方案不建议!)
方法二: 调整控制台的编码为UTF-8;(问题是直接修改了系统的控制台编码,看起来是爽歪歪,但是只不定我还有其他.bat程序就奔溃了。可不可以直接配置vscode呢?百度谷歌呗,这里给个靠谱方案)
方案如下:
修改vscode项目的.vscode/setting.json的terminal配置,添加如下
"terminal.integrated.profiles.windows": {
"cmd": {
"path": "C:\\Windows\\System32\\cmd.exe",
"args": ["-NoExit", "/K", "chcp 65001"]
}
},
备注:网上说的修改配置,"terminal.integrated.shellArgs.windows": ["/K chcp 65001 >nul"], 对于新版本的VSCode,已经不生效。
接着,修改vscode调试和运行时的控制台默认配置:
选择我们的配置“cmd”;
再次运行,正常情况下,控制台就是中文的。
=======================================
若还是乱码的话,考虑您的项目可能是java, java在window运行时默认也是GBK, 还记得java启动是可以指定-Dfile.encoding=UTF-8参数;
好吧,修改.vscode/launch.json:
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"type": "java",
"name": "Launch Current File",
"request": "launch",
"mainClass": "${file}",
"encoding": "UTF-8"
},
{
"type": "java",
"name": "Launch Application",
"request": "launch",
"mainClass": "com.beyongx.bootstrap.Application",
"projectName": "beyongx-bootstrap",
"encoding": "UTF-8"
}
]
}
再运行下,OK!
关注作者获取更多模板信息,定时发布干货文章
全部评论