找回密码
 立即注册
搜索
热搜: 活动 通知
查看: 107|回复: 0

第6集的文字稿

[复制链接]

403

主题

307

回帖

3173

积分

管理员

积分
3173
发表于 2024-11-6 11:29:36 | 显示全部楼层 |阅读模式
001.
在上一集里我们说过,为了让所有国家和地区都能编码自己的字符,国际标准化组织ISO和国际电工协会IEC联合搞了个标准ISO/IEC 2022:《信息技术  字符代码结构 与扩充技术》。在我国,与ISO/IEC 2022等同的标准是GB 2311。


ISO/IEC 2022和GB 2311是个字符编码的标准,不是字符集的标准。接下来,轮到每个国家自己制定字符集及其编码方案了。


002.
1980年,我国制定并颁布了第一个字符集的国家标准,全称是《信息交换用汉字编码字符集-基本集》,标准代号GB2312-80,简称gb2312。这里的GB就是国标的意思,国家标准。


当然了,这个标准是有局限性的,随着时间的推移和技术的进步,它已经无法满足新的需求,所以后来又制定了新的字符集标准,自2017年3月23日起,gb2312标准转为推荐性标准gb/t 2312-1980。这个t就是推荐的意思。


下面我们来认识一下gb2312字符集。<对照网页解读>


003.
如果把字符集看成是一张表,那么,形成字符集的过程就是收集字符,并按顺序填写在这个表中。第一个字符是什么,第二个字符是什么,第三个字符是什么,等等,是一个一个确定的。但实际上,GB2312并不是这样的。


004.
回顾一下ISO/IEC 2022和GB 2311标准,每个国家和地区的字符编码可以是两个连续的7比特,但每个7比特的编码值只能位于G区。即,每个7比特的编码值只能是介于32和127之间,共94个码位。


005.
因为这个原因,同时也是为了将来给字符编码的时候方便,gb2312字符集采用区位的方式收集字符。如果把gb2312字符集看成一张白纸,那么,这种做法是将这张白纸平分成94块,而每一块又平分成94个格子,每个格子放一个字符。


使用GB2312的术语来说,这个字符集分为94个区,每个区包含94个位置,每个位置放一个字符,所以整个字符集可以容纳94*94=8836个字符。


006.
我们来大致浏览一下每个区的字符。<对照网页讲解>


007.
现在我们就可以理解GB2312字符集为何要采用区位的方式来组织字符,因为每个字符的编码是两个7比特,那就可以将区号做为第一个7比特的值,再将位号做为第二个7比特的值,这样很方便。


008.
问题在于,区号是1到94,位号也是1到94,但ISO/IEC 2022和GB2311的规定是每个7比特的编码值必须落在G区,也就是必须大于32。因此,GB2312规定,将区号和位号分别加上32,结果就是字符编码。


009.
比如说,弧度的“弧”,区号是27,位号是1,区号和位号分别加上32,就是这个字的编码:59 33。


010.
来看GB2312的编码。在标准里说得很清楚,“编码表示:本标准对任意一个图形字符都采用两个字节表示,每个字节均采用GB1988-80及GB 2311-80中的七位编码表示。两个字节中前面的字节为第一字节,后面的字节为第二字节。”


011.
历史上,GB2312字符集的这种编码叫做ISO-2022-CN编码。上一课说了,这种编码需要搭配转码序列使用,比如我们讲过的,如果有以下7比特编码的序列:


27 40 66 50 48 50 53 27 36 40 65 68 106 27 40 66 49 27 36 40 65 84 66


那么,这一串文本流传送的是“2025年1月”。在这串文本流里使用了转码序列,用于在不同的字符集之间切换。


除了中国采用的ISO-2022-CN编码,在同一时期,日本和韩国也基于ISO/IEC 2022标准制定了自己的字符集和编码方案,分别叫做ISO-2022-JP和ISO-2022-KR。


以上编码方案是互不兼容的,因为同一个字符代码,比如65 90,可能对应着以上三个国家内的不同字符,也可能是两个ASCII字符A和Z。但是,在ISO/IEC 2022的总体方案下,应用时只要加上转码序列就可以相互区分。


在中国,ISO-2022-CN并不是最流行、使用最广泛的编码方案,以至于很多人都没听说过它。相反,业界广泛使用EUC标准来编码GB2312字符集中的字符。采用EUC标准的GB2312字符编码叫做EUC-CN编码,下一课我们专题讲一讲EUC编码方案。




您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|鼠侠网 ( 吉ICP备19001332号 )

GMT+8, 2024-11-21 20:49 , Processed in 0.219379 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表