汉字编码及显示原理总结

汉字      显示           原理

一·显示过程:

键盘敲击      产生     > 外码       转换   >机内码      查   找   >字库(输出码)      显示     >屏幕

①外码

汉字输入码(外码)是指用户从键盘上键入汉字时所使用的汉字编码。

例如:

数字编码:区位码;

拼音编码:全拼、双拼、微软拼音输入法、自然码、智能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是繁体字的编码


你可能感兴趣的:(STM32学习笔记,汉字编码)