说到计算机编码,首先我们聊一下计算机编码的来源,我们很多人都应该知道,计算机只能识别1和0,也就是说计算机只能处理二进制的数据,比如101010101这样的数据。
为了让计算机去识别其他数据,比如比如0-9,a-z,A-Z,等等一些字符,我们是需要制定一套规则来表示的,比如A用1110来表示,B用1111来表示,制定了这样的规则后,计算机就可以去实现识别其他字符了。那么这套规则就叫做计算机编码。
所以计算机编码就是计算机2进制数字和其他字符的映射的关系。
下面我们就来聊一下计算计中常见的计算机编码:
1.ASCII码:
美国国家标准协会制定了一种编码,称为ASCII码。
这种编码方式是用一个字节(8位数二进制)来表示一个字符,理论上共可以表示2^8=256个字符。因为美国国家语言是英语,只要能表示0-9,a-z,A-Z,特殊符号就可以了。所以这种编码对美国等使用英语的国家是非常适用的。
2.ANSI编码:
但是对于其他国家来说,比如中国,我们的汉字数量是非常多的,256个字符完全不够用,所以很多国家为了显示本国的语言,都对ASCII编码进行了扩展,使用2个字 节进行表示(16位二进制数,理论上可以表示2^16=65536个字符),统称为ANSI编码,这其中有:
GB2312:中国的GB2312码,它包括了6763个汉字,600多个字符。
GBK :后来为了一些罕见的字符,我们国家有对GBK2312进行了扩展,用来显示罕见的,古汉语汉字(已经收录了2.1万个,K的含义就是扩展的意思)
JIS :日本的 JIS码
BIG5 :台湾的BIG5(繁体字)
等等…
3. Unicode码:
后来为了解决传统的字符编码方案的局限性,和兼容性问题,产生了Unicode编码,它用4个字节(32位二进制)表示一个字符,解决了兼容性问题,虽然想法很不错,但是效率太低。
4.utf8码:
是一种针对unicode的可变长度的字符编码,又称为万国码。比如a-z用一个字节表示,但是汉字用3个字节表示。既减少了长度,又保证了兼容性。
结束语:所以utf8成为了我们现在使用最多的一种编码方式!