字符编码
只有在“学习中分享,在分享中学习,我们才能更好的进步”,本着这个理念,我决定将我最近学习的字符编码的知识在博客中分享一下。
一、背景
在计算机技术发展初期,计算机只是一台笨重的大机器,除了运算速度较之传统的运算方式比较快速和便捷之外,没有其他什么优势。随着信息技术的发展计算机技术得以不断的向前推进,在发展的历史长河中,一个不得不提的人---冯.诺依曼。
他是计算机之父,提出了计算机由输入设备、输出设备、运算器、存储器和控制器组成(计算机结构)。
那字符编码的来龙去脉又是怎样的呢?
众所周知,在计算机中直接参与运算的是二进制文件,其他的字符是无法被计算机所识别的,为了让计算机能够识别字符(例如:英文字母,特殊字符等内容,主要是针对美国等发达国家的语言)
其本质是为了更好的完成人机交互(翻译工作),从而创造了字符编码表(关系表)。
二、发展过程
1.ASCII(American Standard Code for Information Interchange)
ASCII(美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。
50年代后期开始研究和出现,它是现今最通用的单字节编码系统。
ASCII 码使用指定的 7 位或 8 位二进制数组合来表示 128 或 256 种可能的字符。
2.GB2312(中国国家标准简体中文字符集)
ASCII可以说基本满足欧美等国家的需要,但是对于中国的汉字以及亚洲乃至于其他国家的语言是无法识别的,为了让计算机支持中文,GB2312诞生了。1981年5月开始实施。GB2312只收录了简化汉字以及一般常用字母和符号,GB2312一共收录了7445个字符,其中简化汉字6763个,字母和符号682个。
3.GBK(中文编码扩展国家标准)
由GBK工作小组于1995年完成的规范,该编码标准兼容GB2312,共收录汉字21003个,符号883个。时至今日,该字符编码已成为汉字系统默认的编码方式。
4.GB18030
GB18030编码采用单字节、双字节、四字节分段编码方案。GB18030向下兼容GBK和GB2312编码。最新的GB18030-2005共收录汉字70244个.
5.Unicode(万国码)
随着历史的发展,美国人意识到应该用一种语言来展示世界上所有语言中的字符,然后Unicode就诞生了。Unicode规定,所有的字符的表示用4个Byte(字节)就足够了,如果用不到4个字节就在前面补0。
6.UTF-8(8-bit Unicode Transformation Format)
前面提到的Unicode的字符编码在一定程度上造成了浪费,所以美国人又发明了一种新的编码方式,这也是现在主流的编码方式,这种编码方式可以说是对Unicode的一种优化和压缩。