编辑 编译 乱码 透彻 讲解 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 ...
随机推荐
- Javascript基本数据认识
1.Js的组成 2.Js的三种引入 行内式 <input type="button" value="来嘛来嘛" onclick="alert(' ...
- LeetCode 94 | 基础题,如何不用递归中序遍历二叉树?
今天是LeetCode专题第60篇文章,我们一起来看的是LeetCode的94题,二叉树的中序遍历. 这道题的官方难度是Medium,点赞3304,反对只有140,通过率有63.2%,在Medium的 ...
- e3mall商城的归纳总结3之后台商品节点、认识nginx
一 后台商品节点 大家都知道后台创建商品的时候需要选择商品的分类,而这个商品的分类就就像一棵树一样,一层包含一层又包含一层.因此这里用的框架是easyUiTree.该分类前端使用的是异步加载模式(指 ...
- Laravel ServiceProvider注册过程及简单使用
Laravel ServiceProvider注册过程及简单使用 还记得facade注册流程吗?回顾下 在bootstrap/app.php中返回$app实例后,通过singleton方法绑定了三个实 ...
- 利用分块传输吊打所有WAF--学习笔记
在看了bypassword的<在HTTP协议层面绕过WAF>之后,想起了之前做过的一些研究,所以写个简单的短文来补充一下文章里“分块传输”部分没提到的两个技巧. 技巧1 使用注释扰乱分块数 ...
- Hexo-butterfly-magicv3.0.1(持续更新中....)
介绍 Hexo-butterfly魔改v3.0.1 软件架构 本项目是基于Hexo静态博客的个性主题---蝴蝶主题魔改版 安装教程 克隆 安装依赖 hexo命令生成public文件夹 启动hexo-s ...
- Mac本地生成SSHKey的方法
1. 查看秘钥是否存在 打开终端查看是否已经存在SSH密钥:cd ~/.ssh 如果没有密钥则不会有此文件夹,有则备份删除, 也可以直接删除, 2.生成新的秘钥, 命令如下 $ssh-keygen ...
- 当前PageOffice需要获取更高版本的授权才能正常运行。(Error:0x0005)
说明当前程序的是pagoeffice3说明当前程序的是pagoeffice3.0的程序,而序列号用的是2.0的序列号,或者说是当前程序是4.0的程序,而序列号用的是3.0的序列号.即当前用的是高版 ...
- 【Gin-API系列】部署和监控(九)
本文是[Gin-API系列]的最后一篇文章,简单介绍如何在生产环境的部署架构和监控手段. 生产部署 部署架构 使用Nginx加Keepalived的方式搭建,可以达到高可用的效果,并可以横向扩容 如何 ...
- C#通过Com串口进行Barcode Printer
前言 工作中有遇到Barcode打印的需求,最开始是通过打印机型号找到对应的打印机,再进行操作,但是需要匹配的打印机型号太多,而且不定,所以处理起来太过麻烦. 后面通过找到通过串口找到打印机,直接传输 ...