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++的更多相关文章

  1. 01C#程序结构及编辑编译环境

    C#程序结构及编辑编译环境 程序结构 C# 中的组织结构的关键概念是程序 (program).命名空间 (namespace).类型 (type).成员 (member) 和程序集 (assembly ...

  2. 01C++编辑编译运行环境

    C++编辑编译运行环境 Bloodshed Dev-C++ Microsoft Visual Studio

  3. C语言编辑编译及集成开发环境

    C语言编辑编译及集成开发环境 编辑器 在不同的操作系统上使用不同的编辑器,保存源代码文件时,文件名应指出程序的功能扩展名应为.c. 编译器 编译器把源代码编译成机器语言的二进制指令即目标代码生成目标文 ...

  4. Java编辑编译及运行环境

    Java编辑编译及运行环境 Microsoft Windows 编辑工具 EditPlus JDK JDK(Java Development Kit,Java开发工具包)安装JDK之后,其中bin文件 ...

  5. javac编译乱码

    PersonTest.java:1: 错误: 非法字符: \65279 解决途径如下 用记事本打开java源文件,另存为ANSI格式 如果java文件包含中文字符,使用-encoding gbk格式进 ...

  6. 在keil调用Notepad++

    先打开keil, 新建一个 取名为notepad 选择notepad++的安装路径 设置参数 保持后可以看多了notepad的选项 运行当前的文件在notepad++打开

  7. 不离开Emacs完成简单程序的编辑编译运行(windows或Linux)

    (1)打开Emacs (2)建立一个新的程序文件. 执行 C-x C-f, 然后在屏幕的底部出现minibuffer,光标提示你输入文件名称, 文件名称要带上后缀名,如hello.cpp.回车,然后开 ...

  8. windows MinGW gcc 编译乱码问题

    问题描述 一般很多编辑器默认都是保存成utf-8文件,然而在输出中文的时候出现了乱码?另外试了其他方法,有的乱码,有的不乱? MinGW gcc 编译 utf-8 文件的时候乱码 MinGW gcc ...

  9. 【001:ubuntu下搭建ESP8266开发环境--编辑 编译 下载】

    系统环境:ubuntu 16.04 TLS 64BIT 编辑器: Eclipse CDT 版本 编译器:xtensa-lx106-elf 交叉编译工具链 下载工具:esptool.py pyseria ...

随机推荐

  1. Python全局变量的简单使用

    对Pyhon实现静态变量全局变量的方法详解 python不能像C++一样直接定义一个static变量或者通过extern来导入别的库的变量而实现数据共享,但是python的思想是通过模块化来解决这个问 ...

  2. LeetCode 94 | 基础题,如何不用递归中序遍历二叉树?

    今天是LeetCode专题第60篇文章,我们一起来看的是LeetCode的94题,二叉树的中序遍历. 这道题的官方难度是Medium,点赞3304,反对只有140,通过率有63.2%,在Medium的 ...

  3. hadoop平台环境搭建

    centos01 配置静态ip vim /etc/sysconfig/network-scripts/ifcfg-eth0 见图1 修改主机名 vim /etc/sysconfig/network 见 ...

  4. Java 实例 - 三目条件运算符

    package guyu.day0903; /** * @Author: Fred * @Date: 2020/9/3 10:59 */ public class Demo01 { public st ...

  5. 轻轻松松学CSS:background

    background是复合属性,它可以分解为8个属性,其中5个属于CSS,另外3个属于CSS3一.CSS    1.background-color:背景色    2.background-image ...

  6. Fragment 1.2.0 更新记录

    1.官方地址 https://developer.android.com/jetpack/androidx/releases/fragment 2.引入方法 dependencies { def fr ...

  7. three.js尝试(二)模拟游戏开发:3D人物在地图上行走

    本次尝试,模拟了一个小人物在场景中行走,使用简单模型建立了森林,图片纹理模拟草地,加载3D模型呈现人物,使用按键asdw模拟人物的行走,行走和站立时人物的切换等. 主要用到点:3D模型的加载,模型的动 ...

  8. require exports module.exports

    require 用于引入模块(js文件). JSON.或本地文件 自己写的模块必须是相对路径,省略了node就认为该自定义模块(js文件)是核心模块(内置模块或者第三方模块) node  有模块作用域 ...

  9. -1>1?! unsigned int的世界不简单

    编程语言提供了很多的基本数据类型,比如char,int,float,double等等.在C和C++的世界中,还有一种类型,叫做无符号数据,修饰符位unsigned,比如今天要说的unsigned in ...

  10. C001:打印勾

    程序: #include "stdafx.h" int _tmain(int argc, _TCHAR* argv[]) { printf(" *\n"); p ...