从本质上说GB2312-1980之类的国标码属于什么码?
《信息交换用汉字编码字符集》是由中国国家标准总局1980年发布,1981年5月1日开始实施的一套国家标准,标准号是GB 2312—1980。
信息交换用,这是交换码。
交换码是指用于交换文件所使用的编码。
对于计算机而言,不同的系统有可能使用不同的内码。但如果不同系统间要交换文件,则会发生乱码现象。解决方法则为,在交换文件前,文件提供者先将由内码形式储存的文件转换成交换码形式再做交换。在接收文件后,文件接收者再由交换码转成内码。
为了方便起见,许多系统的内码则直接使用交换码,如ASCII广为各种系统所使用。
对统一码系统而言,UTF-8、UTF-16、UTF-32皆可说是一种交换码。
鲜有系统或软件使用中文标准交换码做为内码,甚至在交换交件时也不会转成此交换码。
拼音码,这是一种输入法编码。输入码都是属于外码。
机内码,
根据国标码的规定,每一个汉字都有了确定的二进制代码,但是这个代码在计算机内部处理时会与ASCII码发生冲突,为解决这个问题,把国标码的每一个字节的首位上加1(128D=80H)。由于ASCII码只用7位,所以,这个首位上的“1”就可以作为识别汉字代码的标志,计算机在处理到首位是“1”的代码时把它理解为是汉字的信息,在处理到首位是“0”的代码时把它理解为是ASCII码。经过这样处理后的国标码就是机内码。
汉字的机内码、国际码和区位码之间的关系是:
(汉字机内码前两位)H=(国标码前两位)H+80H=(区码)H+A0H
(汉字机内码后两位)H=(国标码后两位)H+80H=(位码)H+A0H
字形码
为了将汉字在显示器或打印机上输出,把汉字按图形符号设计成点阵图,就得到了相应的点阵代码(字形码)。
用于显示的字库叫显示字库。显示一个汉字一般采用16×16点阵或24×24点阵或48×48点阵。已知汉字点阵的大小,可以计算出存储一个汉字所需占用的字节空间。
例:用16×16点阵表示一个汉字,就是将每个汉字用16行,每行16个点表示,一个点需要1位二进制代码,16个点需用16位二进制代码(即2个字节),共16行,所以需要16行×2字节/行=32字节,即16×16点阵表示一个汉字,字形码需用32字节。
即:字节数=点阵行数×(点阵列数/8)
用于打印的字库叫打印字库,其中的汉字比显示字库多,而且工作时也不像显示字库需调入内存。
全部汉字字形码的集合叫汉字字库。汉字库可分为软字库和硬字库。软字库以文件的形式存放在硬盘上,现多用这种方式,硬字库则将字库固化在一个单独的存储芯片中,再和其它必要的器件组成接口卡,插接在计算机上,通常称为汉卡。
可以这样理解,为在计算机内表示汉字而统一的编码方式形成汉字编码叫内码,内码是惟一的。为方便汉字输入而形成的汉字编码为输入码,属于汉字的外码,输入码因编码方式不同而不同,是多种多样的。为显示和打印输出汉字而形成的汉字编码为字形码,计算机通过汉字内码在字模库中找出汉字的字形码,实现其转换。