搜索
您的当前位置:首页正文

编解码相关概念

来源:知库网

背景
  计算机只认识0和1(计算机中所有数据都是二进制进行存放的),人类只能认文字,因此就出现了文字到0、1之间的映射,其实就是指定了映射的规则

  • 编码:从字符(文字、字母、标点等)到0、1的映射是编码;
  • 解码:从0、1到字符的映射叫解码;
  • 字节流:计算机实际存储的字符对应的编号,即在计算机存储上都是字节流(二进制)形式;

名词预览

  1. Binary data:0和1的集合;
      计算机只认识0和1—计算机中所有数据都是二进制进行存储和表示的;在二进制里的每一位(0/1)都叫Bit(位);
  2. Character Sets:定义数字和字符之间的对应关系 — 常见的是ASCII
    eg:在Unicode编码中76就对应了L;
  3. :定义了数字如何用二进制表示 — 用多少bit位表示这些数字;
  • UTF-8:字符用字节(byte)来编码 — 8个0/1来表示二进制的任何字符;
  1. Stream:在Node中就是即将在空间里被移动的一系列数据 — 将一个大的数据切割成一个个小块(chunk)来发送;
  2. Buffer:数据等待区域 — 在计算机RAM中的一个物理地址,里面的数据是在数据流期间暂时收集起来的,被发送给进程处理;
      数据流就是从一个点到另一个点移动的数据,一定时间里系统处理的数据是有上下限的:
  • 供过于求:数据到达速度 > 进程处理速度,数据需要存放在Buffer中等待进程按序处理;
  • 供不足求:数据到达速度 < 进程处理速度,数据需要在Buffer中凑够了一定的量才能被送到处理进程中;

乱码

  1. 文本字符编码过程和字节流解码过程使用了不同的规则;
  2. 非文本文件—没有经过编码的过程,就不需要解码了,解码会引起乱码;
    注:同样的文本字符,经过不同的编码,在存储结构上是不一样的,但是代表的字符是一样的,不同编码的真正区别在于存储结构,因此相同的存储结构,经过不同的解码,对应的文本字符并不一样,但在内存上结构并没有改变,即只是显示是乱码而已,在计算机里还是正确的。

[每篇一愿]:希望掉发不要太严重了,愿上帝能给一个还未出嫁的程序猿一个机会,毕竟不想遁入空门,阿门(上帝os:脱不脱发又不归我管,防脱发用霸王啊,duang)
[作者BB]:施主有耐心看完一个毫无逻辑的前端小白的文章,为你笔芯;作为出自于一个佛系girl的文章,施主能不能读懂就全凭缘分了,愿你看至此能嘴角上扬,皮这一下很开心。

Top