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. Qt 子窗口监听主窗口信号

    Qt 子窗口监听主窗口信号(转载)  原文链接:https://www.cnblogs.com/ybqjymy/p/12169762.html 1 MainWindow *ptr = NULL; 2 ...

  2. WebApi之DOM的基本介绍

    1.1.1 什么是DOM ​ 文档对象模型(Document Object Model,简称DOM),是 W3C 组织推荐的处理可扩展标记语言(html或者xhtml)的标准编程接口. ​ W3C 已 ...

  3. 【原创】Linux虚拟化KVM-Qemu分析(二)之ARMv8虚拟化

    背景 Read the fucking source code! --By 鲁迅 A picture is worth a thousand words. --By 高尔基 说明: KVM版本:5.9 ...

  4. 【学习中】Unity Schedule

    章节 内容 签到 第一课:界面介绍 第一讲 编辑器工作区 4月27日 第二课:资源管理 第二讲 资源及资源类型 4月27日 第三讲 资源管理:模型和角色动画的输出设置(上) 4月27日 第四讲 资源管 ...

  5. oracle创建/删除 用户,表空间-九五小庞

    以下红色标示的都是可以修改的字段 可以按照如下顺序来创建表空间,创建用户,以及删除表空间,删除用户 查看oracle数据库已有的表空间路径 select name from v$datafile; 1 ...

  6. 《神经网络的梯度推导与代码验证》之LSTM的前向传播和反向梯度推导

    前言 在本篇章,我们将专门针对LSTM这种网络结构进行前向传播介绍和反向梯度推导. 关于LSTM的梯度推导,这一块确实挺不好掌握,原因有: 一些经典的deep learning 教程,例如花书缺乏相关 ...

  7. ASP.NET Core 3.x Razor视图运行时刷新实时编译

    前言: 很长一段时间没有写过ASP.NET Core Razor(.cshtml)视图开发WEB页面了,今天刚好把之前做的一个由ASP.NET Core 2.2+Razor开发的项目升级到ASP.NE ...

  8. Istio 运维实战系列(1):应用容器对 Envoy Sidecar 的启动依赖问题

    本系列文章将介绍用户从 Spring Cloud,Dubbo 等传统微服务框架迁移到 Istio 服务网格时的一些经验,以及在使用 Istio 过程中可能遇到的一些常见问题的解决方法. 故障现象 该问 ...

  9. 面经手册 · 第10篇《扫盲java.util.Collections工具包,学习排序、二分、洗牌、旋转算法》

    作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 算法是数据结构的灵魂! 好的算法搭配上合适的数据结构,可以让代码功能大大的提升效率. ...

  10. pytest测试框架 -- assert断言和fixture固件

    一.断言 (1)使用assert语句进行断言 # test_run.py @pytest.mark.assert def test_assert(self): r = requests.get(&qu ...