目录
前言
1.网络教程有新旧,本文预测自发布日起前后6个月均有参考价值(因为涉及插件、IDE、编译器等的更新迭代)
2.本文参考技术类型社区新旧文章结合个人本地测试,来源于网络回馈于网络
3.本文不涉及安装VScode、MinGW等教程,该类教程网络上已有许多优质文章
4.若能解决您的问题,希望您能在评论区回复"解决"给予反馈,能够帮助到您本人倍感荣幸,若很遗憾不能解决您的问题,您可视为提供解决思路。若有幸被大佬看见,或有更好的解决方法,也希望您同我交流,共同进步(本文仅记录博主个人成功案例,若能够解决您的问题最好,若不能,您可视为仅提供解决思路)
5.问题的处理方式很多,在本文中会选用最为通用的解决方法(可能存在瑕疵,但操作简单)
6.本文不是纯小白教程,旨在解决C代码运行过程中的存在的一些影响编程体验的中文编码所导致的问题
一、解决代码区内中文乱码问题
场景展现:
问题分析:Vscode未设置编码自动识别,而采用的是固定编码格式
处理方式:
解决后:
二、解决代码编译时由于中文而导致的报错信息
场景展现:
问题分析:此情况多数为C源码文件或路径包含中文,而导致的生成的可执行文件.exe为中文,造成报错
处理方式:收容.exe文件,并以固定名称命名
在.vscod/task.json文件中,找到"${fileDirname}\\${fileBasenameNoExtension}.exe",修改为"${fileDirname}\\exebox\\final.exe"
原理解释:
此操作会将C源文件编译生成的.exe文件,生成到该C源文件目录下的/exebox/目录,并以固定格式final.exe命名。所以名称exebox和final.exe名称可自定义,但是一定不能包含中文。经此操作后,C源文件编译的文件都会生成final.exe名称的文件,且每一次都会覆盖上一个文件(同名默认覆盖)。所谓瑕疵,就在于final.exe只会有一个,但是对于C初学者来说并无影响,因为C是编译型语言,.exe文件只是为了呈现代码结果。
解决后:
三、解决命令终端的中文乱码问题
场景展现:
问题分析:此问题多出现在曾经使用其他IDE(特别是老一代C编辑器,如Microsoft Visual C++ 2010 Express)编写的C代码,转而使用Vscode打开曾经的C代码时的场景(主要是由于早一代C编辑器并不完全支持UTF-8,多会使用GBK/GB2312进行编码)
处理方式:
在.vscode/task.json中的tasks中添加
"-finput-charset=GBK",
"-fexec-charset=UTF-8",
若不行,可以试试改为GB2312(GBK/GB2312都是老一代C编辑器常用编码)
"-finput-charset=GB2312",
"-fexec-charset=UTF-8",
注意尾部的逗号,这是json格式
解决后:
总结
字符集的历史很悠久,有兴趣可以多加了解字符集和代码页的相关内容。最后,很希望能帮助到您