汉字 显示 原理
一·显示过程:
键盘敲击 产生 > 外码 转换 >机内码 查 找 >字库(输出码) 显示 >屏幕
①外码
汉字输入码(外码)是指用户从键盘上键入汉字时所使用的汉字编码。
例如:
数字编码:区位码;
拼音编码:全拼、双拼、微软拼音输入法、自然码、智能ABC、搜狗等
字形编码:五笔、表形码、郑码输入法等。
②汉字机内码 :
汉字机内码,又称“汉字ASCII码”,简称“内码”,指计算机内部存储,处理加工
和传输汉字时所用的由0和1符号组成的代码。外码到汉字机内码不是直接转换
的 如汉字区位码转换位汉字机内码 :区位码先转换为国标码(GB2312)
(其实国标码就是十六进制的区位码) 汉字机内码=国标码+8080H ;
我认为国标码就相当于一种中间码,为什么国标码要加8080H才是汉字机内码呢?
这个是为了兼容 ASCII 码而设定的,我们知道 ASCII 码一共有 127 个,也就是从
0x00~0x77F[ASCII的最高位都为0]。加上0x80是为了使得每个字节的最高位为1,
这样就可以在内存中区分汉字和ASCII了。
③字库(输出码)
字库(输出码):文字在 屏幕 上面显示,其实也就是在一定范围内显示一些点,
不显示一
些点,从而构成一个文字显示出来,而我们的字库其实也就是存储这些文字的点阵
数据 。国标码对应的 点阵数据存储的顺序就是按照区位码顺序存储的:所有的国
标码汉字及符
号组成一个94行94列的二维代码表(字库)。在此方阵中,每一行称为一个"区",
每一列称为一个"位"。这个方阵实际上组成一个有94个区(编号由01到94),每个
区有94个位(编号由01到94)的汉字字符集。每个字节分别用两位十进制编码,前
字节的编码称为区码,后字节的编码称为位码,此即区位码,其中,高两位为区号,
低两位为位号。这样区位码可以唯一地确定某一汉字或字符;反之,任何一个汉字
或符号都对应一个唯一的区位码。(国标码并不等于区位码,它是由区位码稍作转
换得到,其转换方法为:先将十进制区码和位码转换为十六进制的区码和位码)
二·其他:
①汉字编码有好多种除了GB2312(国标码),还有GBK,BIG5,UNICODE等,
② 对于国标码原则上,两个字节可以表示 256×256=65536 种不同的符号,作为
汉字编码表示的基础是可行的。但考虑到汉字编码与其它国际通用编码,如ASCII 西
文字符编码的关系,我国国家标准局采用了加以修正的两字节汉字编码方案,只用了
两个字节的低7位。这个方案可以容纳 128×128=16384 种不同的汉字,但为了与标准
ASCII码兼容,每个字节中都不能再用32个控制功能码和码值为32的空格以及127的操
作码。故每个字节只能有94个编码,所以双七位实际能够表示的字数是:94×94=8836个,
为国际字符集编码标准只和ASCII编码兼容。GB2312一共收录了7445个字符,包括6763个
汉字和682个其它符号。汉字区的内码范围高字节从B0-F7,低字节从A1-FE,占用的码位
是72*94=6768。其中有5个空位是D7FA-D7FE。GB2312支持的汉字太少。1995年的汉字
扩展规范GBK1.0收录了21886个符号,它分为汉字区和图形符号区。汉字区包括21003个
字符。2000年的GB18030是取代GBK1.0的正式国家标准。该标准收录了27484个汉字,
同时还收录了藏文、蒙文、维吾尔文等主要的少数民族文字。
③Unicode也是一种字符编码方法,不过它是由国际组织设计,可以容纳全世界所有语言
文字的编码方案。
④BIG5是繁体字的编码