字符编码

190 阅读3分钟

前言

hallo大家好,我是你的人类朋友😁

今天记录一下字符编码相关的内容

前两天用markdown记笔记的时候,遇到了乱码的问题:

image.png

调整编码方式chengutf-8也是没有任何作用的。

我都笔记就这么没了😥😥😥

但是问题不大!吃一堑长一智。今天在巩固HTML知识的时候,正好看到了字符编码相关的内容,就顺便做下笔记吧!

内容

首先,我们先来说一下编码解码

VScode为例,当我们在编写代码的时候,在右下角会显示编码的方式

image.png

需要注意的是,当我们的编写代码并保存的时候,我们编写的的内容会以该编码方式进行编码。

举个🌰

假如我们的编码中存在中文字符,但是使用的编码方式中没有对中文的处理,那么这个编码过程就失败了。(乱码)需要注意的是,此时,如果我们再调整编码方式或者解码方式,那是没有效果的,因为此时的数据已经不知道被当前的编码方式变成了什么内容。

正是因为当前的内容已经被当前的编码方式完全搞乱了,所以我们再也无法恢复该数据了。

这也就是为什么我的笔记是无法恢复的。

对我笔记乱码过程的猜测:因为我的笔记中含有中文,但是因为不小心,我把我的笔记按照一个不包含中文的编码进行了编码这个操作,导致我笔记中的中文全部GG,这些GG的内容自然无法通过将解码方式调整成utf-8的方式调整回来正常的中文咯。

那么什么时候乱码可以调整回原本的样子呢?

答案是,如果一个数据经过了正确编码,此时我们按照错误解码方式对经过了编码的数据进行翻译。那么,这个时候如果遇到了乱码,那不用慌,只要再调整回与编码方式相同的解码方式即可咯

总结一下

我们要记住两个原则:

  1. 存储时,必须采用合适的字符编码。否则数据将丢失
  2. 存储的时候,采用了哪种方式编码,读取时就必须采用相同的方式解码。如果不按照相同的方式进行解码,那数据将会错乱(乱码)!!!

扩展一下

下面记录一下常见的几个字符编码

  • ASCII : 包含大写字母,小写字母,一些符号与数字。共128个。
  • ISO 8859-1 : 在ASCII上增加了一些希腊字符,共256个。
  • GB2312:继续扩充,收录了6763个常用汉字,682个字符。其中GB代表国标的意思
  • GBK:收录的汉字和符号达到了20000+,支持繁体中文。中文用这个编码其实就够用了。
  • UTF-8: 万国码,理解成啥都有即可

结语

如果有错误请指出呀,大家一起进步!!😁

下次见咯~😊