首页 > 技术文章 > [ Windows/VSCode ] VSCode 编译 C/C++ 控制台输出中文乱码

ExileRiven 2019-12-24 03:12 原文

在网上找以及自己测试得到的答案:

VSCode 与 cmd 两者之间的编码方式不一样:VSCode 默认是 utf-8 编码,而在中国地区下的 Windows 的 cmd 默认是 GBK 编码。

 

 

解决方法(已经测试了C/C++,java这个比较特殊,首先它不能在 VSCode 控制台里进行输入,其次它在 VSCode 和 cmd 编码方式一样【都为 GBK】的情况下并不能成功显示中文,因此算是失败,如果有谁知道,请告诉我。):

方法一:更改 cmd 或者 vscode 的编码方式:

进入程序所在的目录,运行程序。如我的 cpp 程序在 D:/c/test.exe:

进入cmd后输入如下命令:

D:    进入到驱动器
cd c    进入到 c 目录下
chcp 65001    转换编码方式
test.exe    运行程序

就可以在字符编码为 utf-8 的情况下,将程序输出中文。

vs code控制台:

chcp 65001
.\test.exe

方法二:更改 vscode 程序源文件的编码方式(以下两种都可以,我会讲利弊):

①直接点击下面的 utf-8 

 

我们选择通过其他编码保存,然后输入 GBK 就能使用GBK 中文编码方式保存我们的源文件,然后再运行程序

这个方法的能够让我们在 cmd 终端里面正常显示中文,但是在 vscode 里面中文就会显示乱码!如果我们想在 vscode 终端里面显示正常,那么我们逆向操作就可以了。

②我们按住 【Ctrl + ,】进入设置,输入 encoding 然后把 utf-8 换成 GBK

 

 这样我们所有的程序都会通过 GBK 来进行编码,注意:我们所有的程序都会被编码为 GBK 格式,所以如果你没有打开过的程序里有中文的话,再更改编码格式之后会出现大量的中文乱码(英文不受影响)。

这个方法的好处是能够一劳永逸,你可以不对每一个文件都重新编码保存,但是带来的后果是你的程序被重新编码之后很可能会出现大量乱码

第二种方法里的两种方式都能在一定程度上解决问题,请根据自己的需要进行选择。

推荐阅读