现在我们的电脑上运行的编码都是GBK编码,我们可以在电脑上写英文字符,也可以写中文字符,存取都不会出现乱码问题。
这个时候小日子过得不错的国家说,我们也要用计算机,于是他们就自己制定了自己的字符编码表,叫Shift_JIS。
然后韩国人又制定了自己的字符编码表,叫Euc-kr。
还有其他国家自己都制定了自己的编码表,大家都相安无事,也不会有乱码的问题,但是有一定的局限性。
就是韩国人的计算机只能输入韩文字符和英文字符,咱们中国人的计算机只能输入中文字符和英文字符,美国人的计算机只能输入英文字符哈拉丁字符。
如果我们中国人自己造的计算机想要卖到全世界就没法卖,因为你根本就不支持其他国家的字符,就只能卖给自己国家。
这个问题怎么解决?其实咱们国家的始皇帝在两千多年前就解决这个问题了,书同文,车同轨。
我们现在爱好和平,灭国强制使用GBK编码这个办法实现不了。那么就需要制定一个世界通用的标准。
1988年,有几个程序员在开发国际化程序的时候,对于不同国家的字符在不同计算机上不兼容的问题,实在是忍无可忍了,于是就开启了Unicode编码项目,目的是为了开发出一套支持全世界的字符集。
1989年,ISO(国际化标准组织)也发布了UCS字符集草案。
后来Unicode与UCS意识到世界上不需要两套统一的字符,于是两者进行兼容性合并。
1990年开始研发,1994年正式发布。
这就是Unicode编码的由来,我们也称之为万国码。
这个Unicode和我们的GBK编码一样,仍然是采用16位二进制数对应一个字符,只是咱们的GBK编码到当时只编码了中文字符和英文字符。
我们常说的8位16位值得就是比特位。都是以1024进行计算的。
1bit-->1位二进制
8bit=1Bytes(字节)
1KB=1024Bytes
1MB=1024KB
1GB=1024MB
1TB=1024GB
程序员圈子有个梗,一个人找程序员朋友借1000元,程序员对他说:“要不凑个整吧!给你加24,凑个整。”
如果这个人不是程序员的话,可能会一脸懵逼。
但是做硬盘的厂商计算硬盘容量确是以1000进行计算,所以我们买的500G硬盘它的实际容量只有四百六十多G。
而电信运营商计算网速是以比特位进行计算的,他们的单位叫Mbps,这个b是小写的,就是兆比特每秒,意思是每秒传输的二进制数的位数。
而我们常说的下载速度是MBps,这个B是大写的,就是兆字节每秒,指的是每秒传输字节的数量。
1个字节=8个比特位,所以说我们用的100兆宽带实际上的速度要除以8,在12兆多点的样子。而且这还是排除干扰后的理想状态,实际多数情况下是达不到这个速度的。
由于一个字节等于8个比特位,所以我们会说Unicode里面是以2个字节来表示一个中文字符的,如果是比较生僻的字,会采用4个字节或者8个字节来表示。
对于现在的计算机来讲,所有国家的人都可以在同一台计算机里面,输入自己国家的文字了。
未经允许不得转载:445IT之家 » Python Unicode编码由来