在开发过程中经常会遇到各种各样的编码,常见的有 UTF-8、Unicode、Base64 等,但前端世界远不止这三种编码,本文就来介绍前端常见的编码以及其使用方式。
我们知道,计算机只能理解二进制,二进制语言是面向机器的语言,直接来自计算机的指令系统,由 0 和 1 组成。它使用整数来编码数字(0-9)、大写字母(A-Z)、小写字母(A-Z)以及分号(;)、感叹号(!)等。例如,97 用于表示 “a”,33 用于表示 “!”,这样就可以方便地存储在内存中。
互联网的早期只有英文字母,所以不需要担心任何其他字符,ASCII 就可以适用于这种情况的字符编码,例如 bits 对应的二进制如下:
01100010 01101001 01110100 01110011
b i t s
ASCII 全称为 American Standard Code for Information Interchange,即 “美国信息交换标准代码”,是基于拉丁字母的一套电脑编码系统。ASCII 至今为止共定义了 128 个字符:

ASCII 可以分为两类:


可以看到,ASCII 码实际上是一种映射,是从二进制字符到字母数字字符的映射。所以当计算机收到以下二进制文件时:
01001000 01100101 01101100 01101100 01101111 00100000 01110111 01101111 01110010 01101100 01100100
使用 ASCII 码进行映射,上面的二进制编码可以翻译成 “Hello world”。
“K” 在 ASCII 中是 75,可以将它转化为二进制,将 75 除以 2,然后继续,直到得到 0。如果除法不准确,则加 1 作为余数:
75 / 2 = 37 + 1
37 / 2 = 18 + 1
18 / 2 = 9 + 0
9 / 2 = 4 + 1
4 / 2 = 2 + 0
2 / 2 = 1 + 0
1 / 2 = 0 + 1
现在,提取 “余数” 并以相反的顺序放入它们:
1101001 => 1001011
因此,在 ASCII 中,“K” 在二进制中被编码为 1001011。