编辑 编译 乱码 透彻 讲解 keil vscode notepad++
1.

2.此时VSCODE内的改文件是乱码现象,进行如下操作,选择 通过编码重新打开, 选择GB 2312即可。(GB2312是兼容ANSI编码的)



详细解释一下:
KEIL内是ANSI编码,VSCODE内选择UTF-8编码,显示的英文都是OK的,都不会乱码。这是因为英文字符都是兼容的。 ANSI 英文兼容 UTF8 英文兼容 GB2312.
但是对同一个中文文字,UTF8的编码和GB2312的编码就不是一样的,所以中文就容易乱码,因为对于中文的编码有好几套标准。
ps:计算机是不认识乱码的,只认识二进制,和编码以及和该编码对应的解码并显示的算法《==编解码统称为编码。
进一步地说,我们在一个文件内敲上一大堆中文字的时候,计算机要保存啊,肯定要先问你按照什么编码来保存了,所以你要选择编码的方式(对于一些流行的软件notepad++ vscode,应该都是默认设置好了一种本软件的中文编码方式,用户也可以按照喜好修改编码方式) ps:“默认设置好了一种本软件的中文编码方式”这句话本身是不严谨的,应该改为:“默认置好了一种本软件的编码方式”,只说对中文的编码方式是不全面的。因为:1.某种编码方式一般就包括了对中文的编码、对英文的编码,或者对德语、法语等等的编码。 2.中文的编码方式都兼容英文,例如GBK向下兼容GB2312,GB2312则又向下兼容ANSI。而我这里是为了强调中文容易乱码,(事实也是如此),所以才故意这样讲。
当你选择好了编码方式以后,等十天半个月后,你用U盘把这份文件拷贝到了另一台全新的电脑上的时候,当你用notepad++或VSCODE打开该软件的时候,这时就分两种情况了,一种是显示乱码,一种是不会显示乱码。
如果你之前用的是notepad++的默认编码方式去编码的这份文件,你现在又的是用notepad++来打开这份文件,那么你应该不会乱码,notepad++会按照这款软件的默认编解码方式去解码这份文件并显示给你看。
如果你之前用的是VSCODE的默认编码方式去编码的这份文件,道理同上。
如果你之前用的是notepad++的默认编码方式去保存的这份文件,现在用vscode就去打开这份文件呢?那么如果这俩软件的默认编码方式(我说的编码方式可以理解为编解码方式,概念等同)是一样的,那么你应该不会乱码。如果乱码了,那么鉴于这些软件都是可以根据用户需求来选择自己想要的编码方式的,所以你在用vscode打开这份文件的时候要选择下编码方式,保证编码方式和之前保存这份文件时的编码方式一样,这就肯定不会乱码。
上面是你自己操作的情况,还有一种是人与人之间的情况:你在复制别人的文件的时候。 复制别人的文件,准备地说,复制别人对这些包含中文内容的文件,就是在复制以按照他们喜好的编码方式编码后的计算机内的二进制数据。所以你还是要知道别人当初的编码方式,这样你复制好了别人的文件的时候,你用vscode打开这份文件的时候,你可以选择对应的编码方式,这样就不会乱码了。
还有一种情况也类似,就是复制别人的文件中的内容,这个其实相当于你自己新建一个文件并朝里头写东西, 自己新建、编码、保存的文件,要保证编解码方式一样,这样就不会出现显示乱码,这点上文也已经强调过了(回到:这时就分两种情况了,一种是显示乱码,一种是不会显示乱码)。
编辑 编译 乱码 透彻 讲解 keil vscode notepad++的更多相关文章
- 01C#程序结构及编辑编译环境
C#程序结构及编辑编译环境 程序结构 C# 中的组织结构的关键概念是程序 (program).命名空间 (namespace).类型 (type).成员 (member) 和程序集 (assembly ...
- 01C++编辑编译运行环境
C++编辑编译运行环境 Bloodshed Dev-C++ Microsoft Visual Studio
- C语言编辑编译及集成开发环境
C语言编辑编译及集成开发环境 编辑器 在不同的操作系统上使用不同的编辑器,保存源代码文件时,文件名应指出程序的功能扩展名应为.c. 编译器 编译器把源代码编译成机器语言的二进制指令即目标代码生成目标文 ...
- Java编辑编译及运行环境
Java编辑编译及运行环境 Microsoft Windows 编辑工具 EditPlus JDK JDK(Java Development Kit,Java开发工具包)安装JDK之后,其中bin文件 ...
- javac编译乱码
PersonTest.java:1: 错误: 非法字符: \65279 解决途径如下 用记事本打开java源文件,另存为ANSI格式 如果java文件包含中文字符,使用-encoding gbk格式进 ...
- 在keil调用Notepad++
先打开keil, 新建一个 取名为notepad 选择notepad++的安装路径 设置参数 保持后可以看多了notepad的选项 运行当前的文件在notepad++打开
- 不离开Emacs完成简单程序的编辑编译运行(windows或Linux)
(1)打开Emacs (2)建立一个新的程序文件. 执行 C-x C-f, 然后在屏幕的底部出现minibuffer,光标提示你输入文件名称, 文件名称要带上后缀名,如hello.cpp.回车,然后开 ...
- windows MinGW gcc 编译乱码问题
问题描述 一般很多编辑器默认都是保存成utf-8文件,然而在输出中文的时候出现了乱码?另外试了其他方法,有的乱码,有的不乱? MinGW gcc 编译 utf-8 文件的时候乱码 MinGW gcc ...
- 【001:ubuntu下搭建ESP8266开发环境--编辑 编译 下载】
系统环境:ubuntu 16.04 TLS 64BIT 编辑器: Eclipse CDT 版本 编译器:xtensa-lx106-elf 交叉编译工具链 下载工具:esptool.py pyseria ...
随机推荐
- MinGW-w64安装过程中出现ERROR res错误的问题
使用 mingw-get-setup.exe 安装.在官网http://www.mingw.org/上搜索download/installer,点击下载. 如果使用 mingw-w64-install ...
- Flutter Toast消息提示框插件
Flutter Toast消息提示框插件 在开发flutter项目中,想必大家肯定会用到toast消息提示,说到这里, 大家肯定会想到https://pub.dev/ 插件库, 但是插件市场上有太多类 ...
- Python基本
Python基本规则 1.面向对象的跨平台的编程语言 2.文件类型是.py, 3.一个文件是一个模块module,运行整个文件 4.不支持非英文字符,区分大小写 5.一行是一条语句,多条语句写一行用; ...
- Codeforces1312D Count the Arrays 组合数学
题意 给你\(n\)和\(m\),问满足以下条件的数列的个数: 数列长度为\(n\) 数列值域范围为\(\left[1,m\right]\) 数列有且仅有一对相等的数 数列是单峰数列(先严格递增后严格 ...
- [Python]在当前目录下创建三个目录
import os os.mkdir("2018-03-16-b018") os.mkdir("2019-03-16-b019") os.mkdir(" ...
- Docker启动失败
报错信息: Job for docker.service failed because the control process exited with error code. See "sy ...
- kali linux 开启ssh服务
kali linux 一般默认不开启ssh服务,可使用命令查看ssh服务是否开启 命令:service ssh status 如果显示ssh服务没有开启需要修改ssh配置文件将ssh服务开启,kali ...
- Hadoop入门学习整理(一)
今天是2020年4月8日,是一个平凡而又特殊的日子,武汉在经历了77天的封城之后,于今日0点正式解封.从1月14日放寒假离开武汉,到今天已近3个月,学校的花开了又谢了.随着疫情好转,春回大地,万物复苏 ...
- python中库引用与import
在蟒蛇绘制函数中,多有turtle. ,称它为<a>.<b>的编码风格 库引用 扩充python程序功能的方式 使用import保留字完成,采用<a>.< ...
- (专题一)06 MATLAB的算术运算
基本算术运算 乘法运算:A的行数等于B的列数(A,B两矩阵维数和大小相容) 除法运算 逻辑运算 真为1,假为0 优先级,算术运算的优先级最高,逻辑运算的优先级最低,但逻辑非运算是单目运算,他的优先级比 ...