今晚终于下决心开博客了,因为觉得有必要把自己的想法跟大家,不管是出于分享还是交流,既然开了就要写点什么,不然白板就太难看了,刚好最近研究字符,就稍微记录一下吧,算总结了。
二进制,计算机的基础,可是没有哪个CPU把他当做基本处理单元了,为什么可能是因为太小了吧,就0和1。那什么是基本处理单元呢?你可能会说那还要问字节呗,没错答对了。呵呵,以C语言入门的这个肯定会记得特别清楚。一字节几位?八位,没错。你可能会问为什么是八位?难道外国人也迷信这个跟发谐音的字吗?呵呵,当然不是,主要是他足够大了,为什么说他够大了呢,因为他可以表达外国那可怜的几个字符了。
字节和字符的关系
其实本来是没有关系的,但是为了显示文字的原因,就需要把他们联系起来,这样就被组成了一个ASCII表,老美挺节约的,只用了一半的数字0~127。你会问剩下的呢?恩,问的好,西欧的那些国家可没闲着,他们迅速的占领了剩下的空间。
字节和中文的关系
谢谢你的耐心被我啰嗦到现在还没走开,下面说中文的故事了,其实中文和字节的关系也很简单,你可能会知道中文是双字节组成的。那么好我们就来说说怎么用双字节来表示中文。你或许还听过UNICODE,没错,现在国际化的背景下,这个表正在被人们所知,特别是WINDOWS的大佬们早在WINDOWS2K发布的时候就把所有的字符的内核实现用UNICODE作为标准了。你可能会问UNICODE到底好在为什么地方?问的好,一他向下兼容ASCII,二他用一张表给全世界定了标准,就好比世界地图似的,规定了你在什么区域,他在什么区域。这样最大的好处就是不会乱了。好了既然说到这,就来说说乱码的问题。
为什么会乱码?那就要谈谈历史了,在UNICODE还没有出来之前,各国就已经制定出本国的文字编码表了,这样最大的问题就是会产生冲突,就好比同一个地图上你说这是你的,他说是他的,那么能不乱吗?可惜的是虽然UNICODE已经出来很久了,可是习惯的问题,各国还是会保持使用自己的编码表,所以乱码的问题还是会偶然出现,解决的办法有二个。一个就是大家都使用UNICODE,二就是使用代码页转换的办法,微软就是用的后者。
好了,本来想多写点的,但是时间问题就写到这了,以后再续,感谢观看。