这什么意思呢?像英语、德语、法语、西班牙语都属于同一套「书写系统」——拉丁字母。虽然拉丁字母里的“o”,和西里尔字母“о”,以及希腊字母“ο”,长得几乎一样,但既然属于三个不同的书写系统,而且过去各地都已经搞出了相应的字符编码,为了兼容性,就需要安排三个不同的码位。
一个汉字、一个拉丁字母、一个数字,世界上各种语言里的“字”和“标点符号”,都属于“字符”。一堆字符组成的集合,叫做“字符集”。
B站刷到的一个视频,讲的清晰有条理又有意思。有时间的话看原视频会更清楚:锟斤拷�⊠是怎样炼成的——中文显示“入”门指南【柴知道】
-80是否为国家强制标准?《GB2312-80信息交换用汉字编码字符集基本集》(GB2312-80)于1980年公布,并于1981年5月1日正式实施,当时为国家强制标准。根据我国国家标准公告(2017年第7号)和强制性标准整合精简结论,这一标准自2017年3月23日起转化为推荐性标准。现应为“GB/T2312-80”
当初Unicode收录这些康熙部首,是为了方便词典和输入法能给汉字排序,并跟中国*的「中文标准交换码」兼容。当年就有人担心,这些部首跟常用汉字长得太像,可能会出显示问题。于是Unicode把它们列为了“兼容字符”,这样在正常情况下,用户很难输入这些部首。
各国搞的EASCII字符集和编码,后面128个字符都不太一样,一共搞出了200多种EASCII,互不兼容。就算是同样一串二进制数,在不同的EASCII中对应的字符也不同。所以同一份文本哪怕放到不同语言的计算机中打开,都可能会出现“乱码”。
《星际迷航》的粉丝们,还把克林贡文字放进了私用区,只要你装了这些相关的软件和字体,就能输入和显示克林贡语。
后来微软被逼急了,就根据各地字符集和字符编码,自己扩展了GB2312字符集,加入了一些繁体汉字,这份扩展的字符集后来成为了“汉字内码扩展规范GBK”,这里的K就是“扩展”的意思。
很简单:我们可以选定一个字符集,让字符们“排排坐”,再把“座位序号”转换成二进制——这个“座位序号”叫做“码位”,座位的总数叫做“码空间”。码空间越大,字符集就越大。
比如世界上如果只有“柴”“知”“道”这三个字的话,那我们就可以把“柴”编码为00,“知”编码为01,“道”编码为10。这样计算机一看到这些编码,就知道要显示哪个字了。
不过,GBK并不是国家标准,只是一个普通的技术规范,这种缝缝补补又三年的打补丁操作,又成为了后续一大堆乱码的来源之一。你继续往后看就知道了~
刚才说过,用一个字节编码字符,最多能容纳256个码位。英语一共才那么点字符,256个码位用完都还剩一半。所以西欧一些国家,就搞了“扩展美国信息交换标准代码”,EASCII,也就是用剩下的这128个空位,来表示其他的字符:比如上方有注音符号的法语字母,西班牙语里的特殊标点,数学上常用的α、β等希腊字母,以及一大堆特殊符号等等。
所以在上世纪60年代,美国人先搞出了“美国信息交换标准代码”,简称ASCII。ASCII总共收录了128个字符,包括大小写拉丁字母、数字、常用标点,以及像ESC、换行这种看不见的控制字符。
有话要说...