编辑 编译 乱码 透彻 讲解 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打开这份文件的时候,你可以选择对应的编码方式,这样就不会乱码了。
还有一种情况也类似,就是复制别人的文件中的内容,这个其实相当于你自己新建一个文件并朝里头写东西, 自己新建、编码、保存的文件,要保证编解码方式一样,这样就不会出现显示乱码,这点上文也已经强调过了(回到:这时就分两种情况了,一种是显示乱码,一种是不会显示乱码)。