一文搞懂字符集编码详细介绍
程序员文章站
2022-08-21 15:09:04
在线学习: [撩课-JavaWeb系列1之基础语法-前端基础][撩课-JavaWeb系列2之XML][撩课-JavaWeb系列3之MySQL][撩课-JavaWeb系列4之JDBC][撩课-JavaWeb系列5之web服务器-idea] 一、字符集的由来 二、ASSCII 三、unicode 四、U ......
在线学习:
[撩课-javaweb系列1之基础语法-前端基础]
[撩课-javaweb系列2之xml]
[撩课-javaweb系列3之mysql]
[撩课-javaweb系列4之jdbc]
[撩课-javaweb系列5之web服务器-idea]
一、字符集的由来
计算机只能识别二进制代码 无论是计算机程序还是数据, 最终都会转换成二进制, 计算机才能认识。 为了计算机不只能做科学计算, 也能处理文字信息。 人们想出了给每一个文字符号编码 以便于计算识别处理的办法, 这就是计算机字符集的由来。
二、asscii
一套文字符号及其编码,比较规则 的集合。 20世纪60年代初 美国标准化组织ansi发布了第一个字符集。 ascii 后来又进一步变成了国际标准iso-646 各大字符集 自ascii后。 为了处理不同的文字。 各大计算机公司,各国,标准化*, 组织先后发明了几百种字符集。 `iso-8859` `gb2312-80` `gbk` `big5` 这些五花八门的字符集 从收录的字符集到编码规则各不相同。 给计算机软件开发和移值 带来了很大的困难。 一个软件要在使用 不同文字的国家和地区发布, 必须得要做本地化开发。 基于这个原因,要统一字符编码。
三、unicode
为了统一字符编码。 国际标准化组织iso的一些成员国于1984年 发起制定了新的国际字符集标准。 容纳全世界各种语言,文字,和 符号。 最后这个标准iso-10646 iso-10646发布后, 遭到了美国计算机公司的反对。 1988年,xerox公司提议制定了 新的以16位编码人统一字符集。 并联合不apple,ibm,sun,microsoft等 公司成立了unicode技术委员会。 专门负责收集,整理,和编码。 于1991年推出了unicode1.0 都是为了字符编码统一问题, iso和unicode协会推出了连个不同人标准。 这显然是不利的。 后来双方开始谈判。 1991年10月达成协议。 iso将unicode收编。 起了个名bmp
四、utf-16
iso-10646编码空间足以容纳 从古自今使用过的文字和字符。 但很多文字字符已经很少用了。 超过99%的在用文字字符都编入了bmp. 因此,绝大部分情况下。 `unicode`双字节方式都能满足需求。 而且比双字节编码方式4字节原始编码来说, 更节省内存和处理时间 。 这也是`unicode`流行的原因。 `unicode`提出了`utf-16`的解决办法。
五、utf-8
虽然utf-16解决了上面问题。 但当时的计算机和网络世界还是ascii的天下。 只能处理单字节数据流。 utf-16离开了unicode环境后。 在传输和处理中, 都存在问题。 于是又提出了utf-8的解决文案, `utf-8`按一定的规则, 将一个`iso10646`或`unicode`转换成1至4个字节的编码 其中ascii转成单字节编码。 也就严格兼容了`ascii`字符集。 `utf-8`的2,3,4字节 用以转换iso-10646标准的ucs-4原始码。
六、gb2312
《信息交换用汉字编码字符集》是由中国国家标准总局1980年发布, 1981年5月1日开始实施的一套国家标准, 标准号是[gb 2312]—1980。 gb2312编码适用于汉字处理、 汉字通信等系统之间的信息交换, 通行于*; 新加坡等地也采用此编码。 *几乎所有的中文系统 和国际化的软件都支持gb 2312。 基本集共收入汉字6763个 和非汉字图形字符682个。 整个字符集分成94个区, 每区有94个位。 每个区位上只有一个字符, 因此可用所在的区和位来对汉字进行编码, 称为[区位码]
七、gbk
gbk全称《汉字内码扩展规范》 gbk即“国标”、 “扩展”汉语拼音的第一个字母 gbk 向下与 gb 2312 编码兼容, 向上支持 iso 10646.1[国际标准] 是前者向后者过渡过程中的 一个承上启下的产物。 gbk编码,是在[gb2312-80]标准基础上的 [内码]扩展规范, 使用了双[字节编码方案, 其编码范围从8140至fefe(剔除xx7f), 共23940个码位,共收录了21003个汉字, 完全兼容[gb2312-80]标准, 支持国际标准iso/iec10646-1 和国家标准`gb13000-1`中的 全部中日韩汉字 并包含了`big5`编码中的所有汉字。
上一篇: PHP实现图片旋转效果实例代码
下一篇: ThinkPHP表单自动验证实例