汉字在电脑中是如何存储与编码的呢?
英语文字是拼音文字,所有文字均由26个字母拼组而成,所以使用一个字节表示一个字符足够了。但汉字是象形文字,汉字的计算机处理技术比英文字符复杂得多,一般用两个字节表示一个汉字。由于汉字有一万多个,常用的也有六千多个,所以编码采用两字节的低7位共14个二进制位来表示。一般汉字的编码方案要解决4种编码问题。
(1)汉字交换码
汉字交换码主要是用作汉字信息交换的。以国家标准局1980年颁布的《信息交换用汉字编码字符集基本集》(代号为GB2312-80)规定的汉字交换码作为国家标准汉字编码,简称国标码。
国标GB 2312-80规定,所有的国际汉字和符号组成一个94×94的矩阵。在该矩阵中,每一行称为一个“区”,每一列称为一个“位”,这样就形成了94个区号(01~94)和94个位号(01~94)的汉字字符集。国标码中有6763个汉字和628个其他基本图形字符,共计7445个字符。其中规定一级汉字3755个,二级汉字3008个,图形符号682个。一个汉字所在的区号与位号简单地组合在一起就构成了该汉字的“区位码”。在汉字区位码中,高两位为区号,低两位为位号。因此,区位码与汉字或图形符号之间是一一对应的。一个汉字由两个字节代码表示。
(2)汉字机内码 http://www.bcua.cn 计算机博客
汉字机内码又称内码或汉字存储码。该编码的作用是统一了各种不同的汉字输入码在计算机内的表示。汉字机内码是计算机内部存储、处理的代码。计算机既要处理汉字,又要处理英文,所以必须能区别汉字字符和英文字符。英文字符的机内码是最高位为0的8位ASCII码。为了区分,把国标码每个字节的最高位由0改为1,其余位不变的编码作为汉字字符的机内码。
一个汉字用两个字节的内码表示,计算机显示一个汉字的过程首先是根据其内码找到该汉字字库中的地址,然后将该汉字的点阵字型在屏幕上输出。
汉字的输入码是多种多样的,同一个汉字如果采用的编码方案不同,则输入码就有可能不一样,但汉字的机内码是一样的。有专用的计算机内部存储汉字使用的汉字内码,用以将输入时使用的多种汉字输入码统一转换成汉字机内码进行存储,以方便机内的汉字处理。在汉字输入时,根据输入码通过计算机或查找输入码表完成输入码到机内码的转换。如汉字国际码(H)+8080(H)=汉字机内码(H)。
(3)汉字输入码
汉字输入码也叫外码,是为了通过键盘字符把汉字输入计算机而设计的一种编码。
英文输入时,想输入什么字符便按什么键,输入码和内码是一致的。而汉字输入规则不同,可能要按几个键才能输入一个汉字。汉字和键盘字符组合的对应方式称为汉字输入编码方案。汉字外码是针对不同汉字输入法而言的,通过键盘按某种输入法进行汉字输入时,人与计算机进行信息交换所用的编码称为“汉字外码”。对于同一汉字而言,输入法不同,其外码也是不同的。例如,对于汉字“啊”,在区位码输入法中的外码是1601,在拼音输入中的外码是a,而在五笔字型输入法中的外码是KBSK。汉字的输入码种类繁多,大致有4种类型,即音码、形码、数字码和音形码。
(4)汉字字形码
汉字在显示和打印输出时,是以汉字字形信息表示的,即以点阵的方式形成汉字图形。汉字字形码是指确定一个汉字字形点阵的代码(汉字字形码)。一般采用点阵字形表示字符。
目前普遍使用的汉字字型码是用点阵方式表示的,称为“点阵字模码”。所谓“点阵字模码”,就是将汉字像图像一样置于网状方格上,每格是存储器中的一个位,16×16点阵是在纵向16点、横向16点的网状方格上写一个汉字,有笔画的格对应1,无笔画的格对应0。这种用点阵形式存储的汉字字型信息的集合称为汉字字模库,简称汉字字库。
通常汉字显示使用16×16点阵,而汉字打印可选用24×24点阵、32×32点阵、64×64点阵等。汉字字形点阵中的每个点对应一个二进制位,1字节又等于8个二进制位,所以16×16点阵字形的字要使用32个字节(16×16÷8字节=32字节)存储,64×64点阵的字形要使用512个字节。
在16×16点阵字库中的每一个汉字以32个字节存放,存储一、二级汉字及符号共8836个,需要282.5KB磁盘空间。而用户的文档假定有10万个汉字,却只需要200KB的磁盘空间,这是因为用户文档中存储的只是每个汉字(符号)在汉字库中的地址(内码)
来自bcua blog-电脑博客:http://www.bcua.cn/article/dlzzwx/616.html