为什么需要编码?
当您将数据从您的计算机传输到另一台计算机时,它无法直接传输您看到的数据,例如如果您将“Hello World”从一台计算机发送到另一台计算机,它不能将其传输为“Hello World”,它会将“ Hello World”转换为二进制,可能是这样的
"01001000011001010110110001101100011011111001000000101011101101111011100100110110000010"
因为电线只能传输二进制数据。
或者当您通过电话或互联网通话时,您的语音需要编码为语音频率(以二进制形式存储)。
当它再次返回到另一台计算机时,它将接收到的数据解码为原始格式,二进制转换回“Hello world!” 或返回语音数据
下一个故事是你是如何从“Hello world”中得到上面显示的二进制文件的,这是编码和解码的来源。您可以为字符赋值并传输它们,如下所示。
字符 - 十六进制 - 二进制
一 - 0 - 0000000
b - 1 - 00000001
c - 2 - 00000010
d - 3 - 00000011
e - 4 - 0000100 … 以此类推
所以你可以像上面一样定义你自己的编码集,并告诉坐在其他计算机上的人你使用了上述编码格式,这样当他解码他收到的二进制文件时,他就会完美地得到“Hello World”。
由于这是常见用例,ANSI 为此制定了标准编码格式并要求我们使用它。
最后一个故事是了解不同编码(如 ASCII、UTF-8 等)之间的区别。所以最初的通信数据只包含我们在键盘上看到的字符,所以 ASCII 支持它并包含 256 个字符,其中每个字节代表一个字符,因此 ASCII 编码存在限制,您不能发送中文、日文或泰卢固语,因此引入了支持世界上几乎所有语言的 UTF-8,UTF-8 编码非常智能,并且可以有效地使用内存,以及其他编码。所有的网络浏览器都使用 UTF-8 编码,所以它能够支持不同的语言,所以我们能够看到 Facebook 表情符号和很多其他的。所以如果浏览器使用 ASCII,我们最终只能看到 256 个字符。观看此视频以更好地理解。
为什么需要解码?
看完上面的内容,为什么需要解码就很容易理解了,您需要表达的内容编码后,从一台计算机上传到另一台计算机上后,需要解码为原始格式,不然人怎么理解您想要表达的是什么意思呢?