1、字符编码很重要,需要搞懂
可以说是计算机技术的基石,打不好基石,就不能学好计算机。
2、为什么要有字符编码
我们知道,对于计算机而言,信息是以二进制(0和1)的形式来存储和传输的.他并不认识我们人类创造的文字、图片等等。
思考一下:为什么计算机只认识0和1? 《编码 隐匿在计算机软硬件背后的语言》
所以我们需要一种办法,来将人类认识的文字转换成计算机认识的二进制。这种办法就是字符编码。
我们知道,所有的信息最终都表示为一个二进制的字符串,每一个二进制位(bit)有0和1两种状态。如果我们想要把数字 2 放到内存里,我们可以很容易地做到,因为数字很容易表现成二进制。当我们想把字符'A'
存入计算机时,应该对应哪种状态呢,存储时,我们可以将字符'A'
用01000010
(这个随便编的)二进制字符串表示,存入计算机;读取时,再将01000010
还原成字符'A'
。那么问题来了,存储时,字符'A'
应该对应哪一串二进制数呢,是01000010
?或者是10000000 11110101
?说白了,就是需要一个规则。这个规则可以将字符映射到唯一一种状态(二进制字符串),这就是编码。而最早出现的编码规则就是ASCII编码,在ASCII编码规则中,字符'A'
既不对应01000010
,也不对应1000 0000 11110101
,而是对应01000001
(不要问为什么,这是规则)。
ASCII
ASCII(American Standard Code for Information Interchange:美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。
这套编码规则是由美国定制,一共规定了128个字符的编码,比如空格"SPACE"
是32
(十进制)(二进制00100000
),大写的字母A
是65
(二进制01000001
)。这128个符号(包括32
个不能打印出来的控制符号),只占用了一个字节(8 bit
)的后面7位,最前面的1
位统一规定为0
。总共才有128
个字符编码,一个字节都没有用完,这好像似乎有点太少了。于是乎,就开始压榨最高位,对其为1
时也进行编码,利用最高位进行编码的方式就称为非ASCII
编码,如ISO-8859-1
编码。