VS Code:4个中文乱码问题及解决方法_vscode中文乱码-程序员宅基地

技术标签: VSCode  中文乱码  VS Code  


1. 背景

  凡是编程软件,特别是国外的软件,都有或多或少的中文乱码问题(毕竟程序都是用英文写的)。现提出VS Code编程过程中遇到的4个中文乱码问题以及解决方法。

2. 问题

2.1 打开文件后,中文显示乱码

中文乱码

#include <iostream>
using namespace std;

int main()
{
	int sum = 0, value = 0;
	//ֻ�������ļ�������EOF���������������ʱ�������Ƴ�ѭ����������
	//���������ֺ�ctrl+z�Ƴ�ѭ��
	while (cin >> value) {
		sum += value;
	}
	cout << "Sum is: " << sum << endl;
	return 0;
}

注意:当打开文件,其内容中文乱码时,不要Ctrl+S保存文件。因为那样会保存乱码,使其无法恢复中文。
解决方法1:点击右下角中的“UTF-8”,选择“通过编码重新打开”,输入“GB 2312”,选择“Simplified Chinese(GB 2312)”即可。

点击UTF-8

通过编码重新打开

Simplified Chinese(GB 2312)

通过编码重新打开后的结果

解决方法2:打开“查看”>“命令面板”,输入“setting”, 选择“首选项:打开设置(json)”,输入如下语句并保存即可。

"files.autoGuessEncoding": true

命令面板

首选项:打开设置(json)

files.autoGuessEncoding

解决结果

提示:设置完成后,若文件还是中文乱码,关闭文件重新打开即可。

2.2 终端命令行运行时出现中文乱码

g++ 1.cpp -o 1.exe; ./1.exe

终端中文乱码

原因:在终端使用命令行运行程序时,文件为UTF-8编码,而非GB2312编码。
解决方法1:点击右下角的"UTF-8",选择”通过编码保存“,输入”GB 2312“,选择“Simplified Chinese(GB 2312)”,将UTF-8转换成GB 2312。

通过编码保存

Simplified Chinese(GB 2312)

GB2312运行结果

解决方法2:在命令行前面添加chcp 65001用于换码。

chcp 65001; g++ 1.cpp -o 1.exe; ./1.exe

命令行运行结果

2.3 点击运行键运行程序出现中文乱码

运行键运行程序

原因:从终端可发现,点击运行键运行程序与直接用命令行运行程序相类似,其中文乱码也是因为使用UTF-8编码。
解决方法1:点击右下角的"UTF-8",选择”通过编码保存“,输入”GB 2312“,选择“Simplified Chinese(GB 2312)”,将UTF-8转换成GB 2312。

Simplified Chinese(GB 2312)

运行结果

解决方法2:打开“查看”>“命令面板”,输入“setting”, 选择“首选项:打开设置(json)”,在"code-runner.executorMap"中的“cpp”添加“chcp 65001”。

首选项:打开设置(json)

修改前:

"cpp": "cd $dir && g++ $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt"

修改后:

"cpp": "cd $dir && chcp 65001 && g++ $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt"

运行结果

2.4 调试时,终端出现中文乱码或无法输出中文

终端无法输出中文

原因:文件使用GB2312编码,而非UTF-8编码。
解决方法:点击右下角的"GB2312",选择”通过编码保存“,输入”utf-8“,选择”UTF-8 utf8“即可。

GB2312

通过编码保存

UTF-8

在UTF-8下调试结果

3. 总结

  1. 打开文件时,设置"files.autoGuessEncoding": true令VS Code自动选择合适编码方式。
  2. 通过命令行或运行键运行程序时,若是UTF-8编码会造成中文乱码,需要在运行命令中添加“chcp 65001”,或者将UTF-8编码转换成GB2312编码。
  3. VS Code默认编码是UTF-8,调试时也是使用UTF-8,可以输出中文。
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_34801642/article/details/103759002

智能推荐

统计学基础知识梳理,看这一篇就够了_异常值 二项分布-程序员宅基地

文章浏览阅读1w次,点赞12次,收藏135次。数据分析入门要具备什么样的能力?其中有一项必备的——统计学知识,统计学是一种利用数学理论来进行数据分析的技术,通过统计学我们可以用更富有信息驱动力和针对性的方式对数据进行操作。在数据分析工作中,利用统计学,我们可以更深入、更细致地观察数据是如何进行精确组织的,并且基于这种组织结构确定数据分析的方法,来获取更多的信息。今天小编就给大家分享一篇统计学基础知识梳理,希望对大家有帮助。简单而言,描述性统计分析是用几个关键的数字来描述数据集的整体情况<集中性和离散型(波动性大小)>_异常值 二项分布

java获取视频第一帧_java opencv获取视频第一帧-程序员宅基地

文章浏览阅读780次。这里写自定义目录标题java获取视频第一帧功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入java获取视频第一帧利用FFmpegFrameGrabber处理视频流直接上代码我们对Markdown编辑器进行了一些功能拓展与语_java opencv获取视频第一帧

C++ 使用嵌套循环打印 *型 钻石图案-程序员宅基地

文章浏览阅读2.6k次,点赞5次,收藏17次。使用嵌套循环打印 *型 钻石图案/*********************************题目:使用嵌套循环打印 *型 钻石图案 作者:墨白日期:2020/6/27*********************************/#include<iostream>using namespace std;int main(){ cout << "请输入阶数n: "<<endl; int n; while (cin >

数学使用计算机辅助教学,计算机辅助小学数学教学的初探论文-程序员宅基地

文章浏览阅读122次。计算机辅助教学***简称CAI***是在计算机辅助下进行的各种教学活动,以对话方式与学生讨论教学内容、安排教学进程、进行教学训练的方法与技术。CAI为学生提供一个良好的个人化学习环境。综合应用多媒体、超文本、人工智能、网络通信和知识库等计算机技术,克服了传统教学情景方式上单一、片面的缺点。它的使用能有效地缩短学习时间、提高教学质量和教学效率,实现最优化的教学目标。以下是小编今天为大家精心准备的:计..._数学计算机辅助教学

ARM体系结构与接口技术 —— ARM基础 及 指令_博嵌arm硬件基础与接口技术-程序员宅基地

文章浏览阅读644次。一、ARM基础1、ARM公司讲解成立于1990年11月 前生为Acorn计算机公司; 主要设计ARM系列RISC处理器内核; 授权ARM内核给生产和销售半导体的合作伙伴; ARM公司不生产芯片; 2、ARM产品线 3、授权的厂家TI(德州仪器) Omap3430 Cortex-a8核600MHz(..._博嵌arm硬件基础与接口技术

python疑难杂症-程序员宅基地

文章浏览阅读584次。编码python 转换为json时候 汉字编码问题 - 分享 快乐 - ITeye技术网站 http://flashdream8.iteye.com/blog/1538789python技巧26[str+unicode+codecs] - iTech - 博客园 http://www.cnblogs.com/itech/archive/2011/03/27/1996883.html_python疑难杂症

随便推点

苹果id注册邮箱方法_苹果电子邮件地址怎么注册-程序员宅基地

文章浏览阅读3.9w次。苹果id注册邮箱方法科技飞速发展过程中,苹果手机的应用也十分普遍。使用过苹果手机的朋友都知道,我们注册苹果ID时是需要手机号码或者电子邮箱的。因电话更换频率较电子邮箱更频繁些,所以苹果id注册邮箱更是常见。今天来为大家分析苹果id注册电子邮箱的方法。1、打开苹果手机,点击屏幕中的【设置】按钮2、进入设置界面,点击iTunes Store 与App Store3、进入iTunes Sto..._苹果电子邮件地址怎么注册

解决ccs在c2000下 报错program will not fit into available memory._program will not fit into available memory, or the-程序员宅基地

文章浏览阅读2.8k次。报错program will not fit into available memory.修改编译优化,见下图:_program will not fit into available memory, or the section contains a ca

[sklearn]决策树、随机森林、隐马尔可夫模型_随机森林算法和马尔可夫-程序员宅基地

文章浏览阅读5.9k次。决策树决策树(Decision Tree)是一种用于处理分类和回归问题的无监督学习算法。如下图所示为某女青年在某相亲网站的相亲决策图。这幅图描述的都是一个非常典型的决策树模型。通过对其相亲决策的分析,假设其相亲信息如下所示:该女青年相亲决策主要考虑到因素有年龄,身高,年收入,学历。同事由该女青年的相亲决策图可以看到,相亲决策树以年龄与35岁相比作为树根。但是其他的数据项也能做树根。因此选择合适的数..._随机森林算法和马尔可夫

dp+bitset优化______La Vie en rose( hdu 5745 2016多校第二场)_bitset优化 题目-程序员宅基地

文章浏览阅读1.1k次。Problem DescriptionProfessor Zhang would like to solve the multiple pattern matching problem, but he only has only one pattern string p=p1p2...pm. So, he wants to generate as many as possible pa_bitset优化 题目

读论文——​XLNet Generalized Autoregressive Pretraining for Language Understanding_[mask]标识符在微调阶段并未出现-程序员宅基地

文章浏览阅读583次。第一遍标题以及作者摘要BERT使用掩码破坏了输入(导致在训练阶段和推理阶段的输入出现了差异),忽略了掩码位置之间的依赖关系(即:掩码之间相互独立,但是被遮挡的词语,出现在句中不同位置是有区别的,例如:【我爱阅读】,如果是自回归模型,P(我爱阅读)=P(我)P(爱|我)P(阅|我爱)P(读|我爱阅);如果是自编码模型,P(我爱阅读|我爱maskmask)=P(阅|我爱)P(读|我爱),其中两个mask是相互独立,这是不符合语言直觉的)。本文的XLNet就是为了克服以上两个缺点,提出了一种排列语言模_[mask]标识符在微调阶段并未出现

互联网产品为什么能让用户“上瘾”,常用套路是什么?_哪些非游戏类互联网产品可以让你上瘾-程序员宅基地

文章浏览阅读627次。第一个套路就是赋予崇高的意义这一点的意思就是当用户认为自己在做一件意义非凡的事情时,动力就会变得非常强,这就是为什么很多游戏会给玩家画一个“大饼”,比如拯救世界,人们天生喜欢挑战,渴望成为英雄,看到这种剧情自然会有种“你成功引起了我的注意”的感觉,积极性也就被调动起来了。再比如《使命召唤》系列,游戏剧情设定为抓恐怖分子、阻止核弹发射等等,这种关乎人类命运的任务满足了玩家的各种英雄梦,肾上腺素疯狂..._哪些非游戏类互联网产品可以让你上瘾