汉字的编码体系

合集下载

汉字的编码方式

汉字的编码方式

汉字的编码方式
汉字的编码体系主要有以下几种:
1、国标、区位“准国标”国标是将七千余个汉字以及标点符号、外文字母等,排成一个94行、94列的方阵。

方阵中每一横行称为一个“区”,每个区有94个“位”。

一个汉字在方阵中的坐标,称为该字的区位码;
2、GBK码,GB码的扩展字符编码,对多达两万多的简繁汉字进行了编
码;
3、BIG5码,针对繁体汉字的汉字编码;
4、HZ码,HZ码是在Internet上广泛使用的一种汉字编码,它是以“纯国标”的中文与美标码混用为方案;
5、UCS和ISO,10646UCS是由ISO 10646定义的,是其他字符集标准的一个超集,保证与其他字符集是双向兼容的,它包含了所有已知语言的字符;
6、Unicode提供一种统一的字符标识方法,它是16位编码的,具备世界
各地计算机与出版行业所用字符的全部代码。

而且它的产生是以各个国家或国标字符编码为基础的。

汉字编码问题

汉字编码问题

汉字编码问题由于常常要和汉字处理打交道,因此,我常常受到汉字编码问题的困扰。

在不断的打击与坚持中,也积累了一点汉字编码方面的经验,想和大家一起分享。

一、汉字编码的种类汉字编码中现在主要用到的有三类,包括GBK,GB2312和Big5。

1、GB2312又称国标码,由国家标准总局发布,1981年5月1日实施,通行于大陆。

新加坡等地也使用此编码。

它是一个简化字的编码规范,当然也包括其他的符号、字母、日文假名等,共7445个图形字符,其中汉字占6763个。

我们平时说6768个汉字,实际上里边有5个编码为空白,所以总共有6763个汉字。

GB2312规定“对任意一个图形字符都采用两个字节表示,每个字节均采用七位编码表示”,习惯上称第一个字节为“高字节”,第二个字节为“低字节”。

GB2312中汉字的编码范围为,第一字节0xB0-0xF7(对应十进制为176-247),第二个字节0xA0-0xFE(对应十进制为160-254)。

GB2312将代码表分为94个区,对应第一字节(0xa1-0xfe);每个区94个位(0xa1-0xfe),对应第二字节,两个字节的值分别为区号值和位号值加32(2OH),因此也称为区位码。

01-09区为符号、数字区,16-87区为汉字区(0xb0-0xf7),10-15区、88-94区是有待进一步标准化的空白区。

2、Big5又称大五码,主要为香港与台湾使用,即是一个繁体字编码。

每个汉字由两个字节构成,第一个字节的范围从0X81-0XFE(即129-255),共126种。

第二个字节的范围不连续,分别为0X40-0X7E(即64-126),0XA1-0XFE(即161-254),共157种。

3、GBK是GB2312的扩展,是向上兼容的,因此GB2312中的汉字的编码与GBK中汉字的相同。

另外,GBK中还包含繁体字的编码,它与Big5编码之间的关系我还没有弄明白,好像是不一致的。

GBK中每个汉字仍然包含两个字节,第一个字节的范围是0x81-0xFE(即129-254),第二个字节的范围是0x40-0xFE(即64-254)。

第七章 汉字的编码规则与输入

第七章 汉字的编码规则与输入
在按“书写顺序”拆分汉字时,不能无限制 地拆下去,否则全都变成了单笔画!而应当以 “再添一个笔画便不能构成为字根”为限度,每 次都拆取一个“尽可能大”的,即“尽可能笔画 多”的字根。
例如:
世:第一种拆法:一、凵、乙(误);
第二种拆法:廿、乙(正确)。
显然,前者是错误的,因为其第二个字根
“凵”,完全可以向前凑到“一”上,形成一个 “更大”的已知字根“廿”。再如:
(误);
、一、冂、丨、刂
、冂、丨、刂(正确)。
同样,第一种拆法是错误的。因为这种拆法
第二码的“一”,作为“ ”之后的一个笔画, 完全可以向前凑,与第一个字根“ ”凑成“更 大”一点的字根“ ”。
总之,“取大优先”,俗称“尽量往前凑”, 是一个汉字拆分中最常用到的基本规则。至于什 么才算“大”,“大”到什么程度才到边,等到
例如:“新”——只能拆成“立、木、斤”, 而不能拆成“立、斤、木”;
夷——只能拆成“一、弓、人”,而不能拆 成“大、弓”;
中 —— 只 能 拆 成 “ 口 、 丨 ” , 而 不 能 拆 成
口”。
(2)取大优先 “取大优先”,也叫做“优先取大”。它有 如下两层含义:
*拆分汉字时,拆分出的字根数应该最少; *当有多种拆分方法时,应取前面字根大、笔 画多的那种。
5种单笔画的编码规则与输入方法:报户口 + 单笔画 + L + L。
例如:“一”:GGLL,“丨”:HHLL
“丿”:TTLL,“丶”:YYLL
应当说明,“一”是一个极为常用的字,每 次都打4下健岂不费事?别担心,GGLL只是作为 全码,后边会讲到,“一”还有一个最简短的码, 也叫“高频字”码,你只要打一个“G11”,再打 一个空格键便可输入。

(好)汉字机内码、国标码和区位码定义区别

(好)汉字机内码、国标码和区位码定义区别

1.国家标准汉字代码体系汉字字数繁多,属性丰富,因而汉字代码体系也较复杂,包括:(1)汉字机内码。

它们是汉字在计算机汉字系统内部的表示方法,是计算机汉字系统的基础代码。

(2)汉字交换码。

它们是国标汉字(如机内码)进行信息交换的代码标准。

(3)汉字输入码。

它们是在计算机标准键盘上输入汉字用到的各种代码体系。

(4)汉字点阵码。

它们是在计算机屏幕上显示和在打印机上打印输出汉字的代码体系。

(5)汉字字形控制码。

为了打印各种风格的字体和字形所制定的代码。

这些代码系统有的必须有统一的国家标准,有的则不要求统一。

近年来我国已经制定系列汉字信息处理方面的国家标准,今后将继续完善,并与国际上求得统一。

2.国家标准汉字交换码(国标码)我国制定了“中华人民共和国国家标准信息交换汉字编码”,标准代号为GB2312—80,这种编码又称为国标码。

在国标码的字符集中共收录了一级汉字3755个,二级汉字3008 个,图形符号682个,三项字符总计7445个。

国标码是指1980年中国制定的用于不同的具有汉字处理功能的计算机系统间交换汉字信息时使用的编码。

国际码是二字节码, 用两个七位二进制数编码表示一个汉字。

目前国标码收入6763个汉字, 其中一级汉字(最常用)3755个, 二级汉字3008个, 另外还包括682个西文字符、图符。

一级汉字为常用字,按拼音顺序排列,二级汉字为次常用字,按部首排列。

国标码的范围是2121H—7E7EH。

3、区位码:国标码是一个四位十六进制数,区位码是一个四位的十进制数,每个国标码或区位码都对应着一个唯一的汉字或符号,但因为十六进制数我们很少用到,所以大家常用的是区位码,它的前两位叫做区码,后两位叫做位码在国标GB2312—80中规定,所有的国标汉字及符号分配在一个94行、94列的方阵中,方阵的每一行称为一个“区”,编号为01区到94区,每一列称为一个“位”,编号为01位到94位,方阵中的每一个汉字和符号所在的区号和位号组合在一起形成的四个阿拉伯数字就是它们的“区位码”。

lcd汉字内码公式

lcd汉字内码公式

1.3、汉字交换码
汉字交换码是一种用于汉字信息处理系统之间,或者与通讯系统之间进行信息交换的汉字代码。汉字交换码位于一台机器的出口和另一台机器(包括输出设备与记录设备)的入口之间。为了要达到系统设备之间或记录介质之间信息交换的目的,汉字交换码必须采取统一的形式。目前国内计算机系统所采用的标准信息处理交换码,是根据国家标准制定的,即GB1988 — 《信息处理交换使用的七位编码字符集》;还制定了相应的代码扩充标准,即GB2311 — 《信息处理交换使用的七位编码字符集的扩充方法》。因为汉字交换码应与GB1988兼容,并根据GB2311所规定的方法进行编制。由于汉字数量远远大于七位编码所能表示的六千多个常用汉字制定了交换码的国家标准,即GB2312 — 《信息交换用汉字编码字符基本集》,其中每个汉字用对应于GB1988的两个七位码来表示。
1.4、汉字字型码
由于目前汉字信息处理系统中产生汉字字形的方式大多是数字式的,即以点阵的方式形成汉字,过汉字字形码是指确定一个汉字字形码也就不同。
一般情况下是将国标码的每个字节的高位置成1,作为汉字机内码,这种编码称作为变形国标码。这样作既解决了西文机内码与汉字机内码的二义性,又保证汉字机内码与国标码之间有极简单的对应关系。其组织如下:
内码 ch1 ch2
不 不
1字节 1字节
根据CGB2312-80中的汉字、图形符号,根据其位置分为94个“区”,每个区包含94个汉字,每个汉字字符又称作“位”。其中“区”的序号,由01到94,“位”的序号,也是从01到94。若以横向表示“位”号,纵向表示“区”号,则“区”和“位”构成一个二维坐标。给定一个“区”值和“位”值就可以确定一个唯一的汉字或图形符号。所以4位数字就可以唯一确定一个汉字或符号,下面给出汉字的区内和内码对应关系表。

GBK字库介绍

GBK字库介绍

GBK字库介绍【基本概念】GBK 是又一个汉字编码标准,全称《汉字内码扩展规范》(GBK),英文名称Chinese Internal Code Specification ,中华人民共和国全国信息技术标准化技术委员会1995 年12 月 1 日制订,国家技术监督局标准化司、电子工业部科技与质量监督司1995 年12 月15 日联合以技监标函[1995] 229 号文件的形式,将它确定为技术规范指导性文件,发布和实施。

这一版的GBK 规范为 1.0 版。

GB 即“国标”,K 是“扩展”的汉语拼音第一个字母。

GBK 向下与GB 2312 编码兼容,向上支持ISO 10646.1 国际标准,是前者向后者过渡过程中的一个承上启下的标准。

ISO 10646 是国际标准化组织ISO 公布的一个编码标准,即Universal Multilpe-Octet Coded Character Set(简称UCS),大陆译为《通用多八位编码字符集》,台湾译为《广用多八位元编码字元集》,它与Unicode 组织的Unicode 编码完全兼容。

ISO 10646.1 是该标准的第一部分《体系结构与基本多文种平面》。

我国1993 年以GB 13000.1 国家标准的形式予以认可(即GB 13000.1 等同于ISO 10646.1)。

GBK编码,是在GB2312-80标准基础上的内码扩展规范,使用了双字节编码方案,其编码范围从8140至FEFE(剔除xx7F),共23940个码位,共收录了21003个汉字,完全兼容GB2312-80标准,支持国际标准ISO/IEC10646-1和国家标准GB13000-1中的全部中日韩汉字,并包含了BIG5编码中的所有汉字。

GBK编码方案于1995年10月制定,1995年12月正式发布,目前中文版的WIN95、WIN98、WINDOWS NT以及WINDOWS 2000、WINDOWS XP等都支持GBK编码方案。

汉字编码

汉字编码

1、汉字的代码体系:(5个)汉字输入码,汉字内部码,汉字地址码,汉字字形码,汉字交换码。

2、汉字的字模用于汉字的显示和打印输出,字模中的每一个点都用一个二进制数表示,这种数字化的字模点阵代码,称为字形码。

3、在计算机内部,一个ascii码占有1个存储空间,一个汉字占有2个存储空间,一个8*8点阵的ascii码字模占有8个存储空间,一个32*32点阵的汉字字模占有128个存储空间,那么32KB存储空间分别能存放以上内容的个数为32K ,16K , 4K ,256。

、4、汉字库根据存放的介质不同分为软字库和硬字库,用来指出汉字字模信息在汉字库中存放的逻辑地址的编码为汉字地址码,5、我国制定的汉字信息交换的统一标准为GB2312-80,简称为国标码,它将汉字编码分成94区,94位,就是区位码,共收集了7445个图形字符,其中汉字编码为6763个,分为按音序排列的一级汉字3755个,按部首排列的二级汉字3008个,符号,字母在第3区。

制表符在第9区。

汉字字符及GBK 包含了GB2312-80中的所有汉字。

6、汉字内部码也称为机内码,一个汉字的国标码的最高位置为1就得到了汉字的机内码,运算规则为国标码+8080H=机内码。

7、汉字输入码分为流水码(区位码),音码(紫光),形码(王码五笔),音形结合码(自然码)。

8、已知汉字的区位码为5964,求国标码和机内码。

9、已知汉字的机内码为D5C2H,求区位码和国标码。

10、已知汉字的国标码为3566H,求区位码和机内码。

1、汉字的代码体系:(5个)汉字输入码,汉字内部码,汉字地址码,汉字字形码,汉字交换码。

2、汉字的字模用于汉字的显示和打印输出,字模中的每一个点都用一个二进制数表示,这种数字化的字模点阵代码,称为字形码。

3、在计算机内部,一个ascii码占有1个存储空间,一个汉字占有2个存储空间,一个8*8点阵的ascii码字模占有8个存储空间,一个32*32点阵的汉字字模占有128个存储空间,那么32KB存储空间分别能存放以上内容的个数为32K ,16K , 4K ,256。

汉字的机内码是指在计算机中表示一个汉字的编码

汉字的机内码是指在计算机中表示一个汉字的编码

汉字的机内码是指在计算机中表示一个汉字的编码。

机内码与区位码稍有区别。

汉字区位码的区码和位码的取值均在1~94之间,如直接用区位码作为机内码,就会与基本ASCII码混淆。

为了避免机内码与基本ASCII码的冲突,需要避开基本ASCII码中的控制码(00H~1FH),还需与基本ASCII码中的字符相区别。

为了实现这两点,可以先在区码和位码分别加上20H,在此基础上再加80H(此处“H”表示前两位数字为十六进制数)。

经过这些处理,用机内码表示一个汉字需要占两个字节,分别称为高位字节和低位字节,这两位字节的机内码按如下规则表示:高位字节=区码+20H+80H(或区码+A0H)低位字节=位码+20H+80H(或位码+AOH)由于汉字的区码与位码的取值范围的十六进制数均为01H~5EH(即十进制的01~94),所以汉字的高位字节与低位字节的取值范围则为A1H~FEH(即十进制的161~254)。

例如,汉字“啊”的区位码为1601,区码和位码分别用十六进制表示即为1001H,它的机内码的高位字节为B0H,低位字节为A1H,机内码就是B0A1H。

2603 = 1A03H 区位码+ A0A0H= BAA3H 机内码[本帖最后由rossini23 于2006-10-11 13:28 编辑]计算机处理汉字信息的前提条件是对每个汉字进行编码,这些编码统称为汉字编码。

汉字信息在系统内传送的过程就是汉字编码转换的过程。

汉字交换码:汉字信息处理系统之间或通信系统之间传输信息时,对每一个汉字所规定的统一编码,我国已指定汉字交换码的国家标准“信息交换用汉字编码字符集——基本集”,代号为GB 2312—80,又称为“国标码”。

国标码:所有汉字编码都应该遵循这一标准,汉字机内码的编码、汉字字库的设计、汉字输入码的转换、输出设备的汉字地址码等,都以此标准为基础。

GB 2312—80就是国标码。

该码规定:一个汉字用两个字节表示,每个字节只有7位,与ASCII码相似。

第二章 汉字信息在计算机内部的表示

第二章 汉字信息在计算机内部的表示

0
1
2
3
4
5
6
7
ASCII码字符标准中用7 ASCII码字符标准中用7位 码字符标准中用 二进制数定义了128个字符, 128个字符 二进制数定义了128个字符, 其中94个为图形字符, 94个为图形字符 其中94个为图形字符,32 个为控制字符, 个为控制字符,1个为空格 字符和一个Del Del键 字符和一个Del键。 ASCII的编码空间如图所示, ASCII的编码空间如图所示, 的编码空间如图所示 图中把7位二进制数分为高 图中把7位二进制数分为高 位作为列号, 3位作为列号,低4位作为 行号,并用十六进制表示, 行号,并用十六进制表示, 从而组成了一个ASCII编码 从而组成了一个ASCII编码 ASCII 空间。 空间。
7.代码页 代码页 不同国家的人使用着不同语言的操作系统。然而, 不同国家的人使用着不同语言的操作系统。然而,操 作系统厂商若要根据各个国家和地区使用不同语言文字的 人开发不同的操作系统,在成本、 人开发不同的操作系统,在成本、系统维护与升级等方面 的开销太大。为此,微软公司在开发MS DOS和 MS的开销太大。为此,微软公司在开发MS-DOS和Windows3.1 的各种产品时, 的各种产品时,进一步将依赖于各具体平台的各文种的字 符集加以整理,并对各个具体的代码页都赋予一个代号, 符集加以整理,并对各个具体的代码页都赋予一个代号, 称作“代码页ID ID”。 称作“代码页ID 。
0 0 1 2 3 4 5 6 7 8 9 A B C D E F
1
2
3
4
5
6
7
8
9
A
B
C
D
E
Fቤተ መጻሕፍቲ ባይዱ
C0控制 字符区

字符编码简介:ASCII,Unicode,UTF-8,GB2312

字符编码简介:ASCII,Unicode,UTF-8,GB2312

字符编码简介:ASCII,Unicode,UTF-8,GB2312字符编码简介:ASCII,Unicode,UTF-8,GB23121. ASCII码我们知道,在计算机内部,所有的信息最终都表示为一个二进制的字符串。

每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(byte)。

也就是说,一个字节一共可以用来表示256种不同的状态,每一个状态对应一个符号,就是256个符号,从0000000到11111111。

上个世纪60年代,美国制定了一套字符编码,对英语字符与二进制位之间的关系,做了统一规定。

这被称为ASCII码,一直沿用至今。

ASCII码一共规定了128个字符的编码,比如空格“SPACE”是32(二进制00100000),大写的字母A是65(二进制01000001)。

这128个符号(包括32个不能打印出来的控制符号),只占用了一个字节的后面7位,最前面的1位统一规定为0。

2、非ASCII编码英语用128个符号编码就够了,但是用来表示其他语言,128个符号是不够的。

比如,在法语中,字母上方有注音符号,它就无法用ASCII码表示。

于是,一些欧洲国家就决定,利用字节中闲置的最高位编入新的符号。

比如,法语中的é的编码为130(二进制10000010)。

这样一来,这些欧洲国家使用的编码体系,可以表示最多256个符号。

但是,这里又出现了新的问题。

不同的国家有不同的字母,因此,哪怕它们都使用256个符号的编码方式,代表的字母却不一样。

比如,130在法语编码中代表了é,在希伯来语编码中却代表了字母Gimel (ג),在俄语编码中又会代表另一个符号。

但是不管怎样,所有这些编码方式中,0—127表示的符号是一样的,不一样的只是128—255的这一段。

至于亚洲国家的文字,使用的符号就更多了,汉字就多达10万左右。

一个字节只能表示256种符号,肯定是不够的,就必须使用多个字节表达一个符号。

汉字编码

汉字编码

多种的输入法电脑的流行,很多IT企业又开发 了Android入法等。这些输入法延 续了电脑上输入法的特点,同时输入法软件针对触屏的特 点,从而提供了更为灵活的输入方式。
汉字编码
• 介绍前面的ASCII码后,计算机在处理汉字时,也要将其转 化为二进制代码,这就需要对汉字进行编码。可以抽象地 将计算机处理的所有文字信息(汉语词组、英文单词、数 字、符号等)看成由一些基本字和符号组成的字符串,中 文词组如“信息”则由“信”和“息”两个汉字组成,每 个基本汉字符编制成一组二进制代码。 • 西文是拼音文字,基本符号比较少,编码比较容易。因此 在计算机系统中,输入、内部处理、存储和输出都可以使 用同一代码,如ASCII码。而汉字的输入、转换盒存储方法 尽管与西文相似,但由于汉字数量多,编码比拼音文字困 难,所以其输入、内部处理、存储和打印输出使用不同的 编码—汉字编码
• 随着互联网的快速发展,2006 年6月由搜狐公司推出的一款 Windows平台下的搜狗拼音输 入法。搜狗拼音输入法是基于 搜索引擎技术的新一代的拼音 输入法产品,用户可以通过互 联网备份自己的个性化词库和 配置信息。搜狗拼音输入法一 经出来很快取代了智能ABC输 入法• 1.国标码 计算机处理汉字所用的编码标准是我国于1980年颁布的国家标准GB2312-1980,即《中华人民共 和国国家标准信息交换汉字编码》,简称国标码。
它于1981年5月1日实施,是一个简化字的编码规范。通常所说的区位码输入法就是基于国标码 得到的,其最大特点就是具有唯一值,即没有重码。
汉字输入码的分类
• 1,拼音码:以汉字的汉语拼音为基础,以汉字的汉语拼音或 其一定规则的缩写形式为编码元素的汉字输入码统称为 拼音码. • 2,拼形码:以汉字的形状结构及书写顺序特点为基础,按照 一定的规则对汉字进行拆分,从而得到若干具有特定结构 特点的形状,然后以这些形状为编码元素"拼形"而成汉字 的汉字输入码统称为拼形码.

汉字编码问题

汉字编码问题

汉字编码问题一、GB2312-80介绍GB2312码是中华人民共和国国家汉字信息交换用编码,全称《信息交换用汉字编码字符集--基本集》,由国家标准总局发布,1981年5月1日实施,通行于大陆。

新加坡等地也使用此编码。

GB2312收录简化汉字及符号、字母、日文假名等共7445个图形字符,其中汉字占6763个。

GB2312规定“对任意一个图形字符都采用两个字节表示,每个字节均采用七位编码表示”,习惯上称第一个字节为“高字节”,第二个字节为“低字节”。

GB2312-80包含了大部分常用的一、二级汉字,和9区的符号。

该字符集是几乎所有的中文系统和国际化的软件都支持的中文字符集,这也是最基本的中文字符集。

其编码范围是高位0xa1-0xfe,低位也是0xa1-0xfe;汉字从0xb0a1开始,结束于0xf7fe。

GB2312将代码表分为94个区,对应第一字节(0xa1-0xfe);每个区94个位(0xa1-0xfe),对应第二字节,两个字节的值分别为区号值和位号值加32(2OH),因此也称为区位码。

01-09区为符号、数字区,16-87区为汉字区(0xb0-0xf7),10-15区、88-94区是有待进一步标准化的空白区。

GB2312将收录的汉字分成两级:第一级是常用汉字计3755个,置于16-55区,按汉语拼音字母/笔形顺序排列;第二级汉字是次常用汉字计3008个,置于56-87区,按部首/笔画顺序排列。

故而GB2312最多能表示6763个汉字。

GB2312的编码范围为2121H-777EH,与ASCII有重叠,通行方法是将GB码两个字节的最高位置1以示区别。

图1:GB2312编码图图中位于ASCII区中的虚线区域即为原GB2312编码区域,右下角实线区域为平移后的GB2312编码区域。

二、GB2312-80的扩展GBK是GB2312-80的扩展,是向上兼容的。

它包含了20902个汉字,其编码范围是0x8140-0xfefe,剔除高位0x80的字位。

输入码、国标码、机内码、字型码

输入码、国标码、机内码、字型码

88--94区:自定义汉字区,可留作用户自己定义。
3.机内码
根据国标码的规定,每一个汉字都有了确定的二进制代码,但是这个代码在计算机内部处理时会与ASCII码发生冲突,为解决这个问题,把国标码的每一个字节的首位上加1。由于ASCII码只用7位,所以,这个首位上的“1”就可以作为识别汉字代码的标志,计算机在处理到首位是“1”的代码时把它理解为是汉字的信息,在处理到首位是“0”的代码时把它理解为是ASCII码。经过这样处理后的国标码就是机内码。
01--15区:是各种图形符号、制表符和一些主要国家的语言字母,其中01--09区为标准符号区,共有682个常用符号。
10--15区:为自定义符号区,可留作用户自己定义。
16--55区:是一级汉字区,共有3755个常用汉字,以拼音为序排列。
56--87区:是二级汉字区,共有3008个次常用汉字,以部首为序排列。
西文是拼音文字,基本符号比较少,编码比较容易,因此,在一个计算机系统中,输入、内部处理、存储和输出都可以使用同一代码。汉字种类繁多,编码比拼音文字困难,因此在不同的场合要使用不同的编码。通常有4种类型的编码,即输入码、国标码、内码、字形码。
① 输入码
输入码所解决的问题是如何使用西文标准键盘把汉字输入到计算机内。有各种不同的输入码,主要可以分为三类:数字编码、拼音编码和字编型码。
● 拼音编码。是以汉字读音为基础的输入方法。由于汉字同音字太多,输入后一般要进行选择,影响了输入速度。
● 字型编码。是以汉字的形状确定的编码,即按汉字的笔画部件用字母或数字进行编码。如五笔字型、表形码,便属此类编码,其难点在于如何拆分一个汉字。
② 国标码
又称为汉字交换码,在计算机之间交换信息用。用两个字节来表示,每个字节的最高位均为0,因此可以表示的汉字数为214=16384个。将汉字区位码的高位字节、低位字节各加十进制数32(即十六进制数的20),便得到国标码。例如“中”字的国标码为8680(十进制)或7468(十六进制)。这就是国家标准局规定的GB2312—80信息交换用汉字编码集。

汉字的机内码是指在计算机中表示一个汉字的编码(新)

汉字的机内码是指在计算机中表示一个汉字的编码(新)

汉字的机内码是指在计算机中表示一个汉字的编码。

机内码与区位码稍有区别。

汉字区位码的区码和位码的取值均在1~94之间,如直接用区位码作为机内码,就会与基本ASCII码混淆。

为了避免机内码与基本ASCII码的冲突,需要避开基本ASCII码中的控制码(00H~1FH),还需与基本ASCII码中的字符相区别。

为了实现这两点,可以先在区码和位码分别加上20H,在此基础上再加80H(此处“H”表示前两位数字为十六进制数)。

经过这些处理,用机内码表示一个汉字需要占两个字节,分别称为高位字节和低位字节,这两位字节的机内码按如下规则表示:高位字节=区码+20H+80H(或区码+A0H)低位字节=位码+20H+80H(或位码+AOH)由于汉字的区码与位码的取值范围的十六进制数均为01H~5EH(即十进制的01~94),所以汉字的高位字节与低位字节的取值范围则为A1H~FEH(即十进制的161~254)。

例如,汉字“啊”的区位码为1601,区码和位码分别用十六进制表示即为1001H,它的机内码的高位字节为B0H,低位字节为A1H,机内码就是B0A1H。

2603 = 1A03H 区位码+ A0A0H= BAA3H 机内码[本帖最后由rossini23 于2006-10-11 13:28 编辑]计算机处理汉字信息的前提条件是对每个汉字进行编码,这些编码统称为汉字编码。

汉字信息在系统内传送的过程就是汉字编码转换的过程。

汉字交换码:汉字信息处理系统之间或通信系统之间传输信息时,对每一个汉字所规定的统一编码,我国已指定汉字交换码的国家标准“信息交换用汉字编码字符集——基本集”,代号为GB 2312—80,又称为“国标码”。

国标码:所有汉字编码都应该遵循这一标准,汉字机内码的编码、汉字字库的设计、汉字输入码的转换、输出设备的汉字地址码等,都以此标准为基础。

GB 2312—80就是国标码。

该码规定:一个汉字用两个字节表示,每个字节只有7位,与ASCII码相似。

GB2312、GB 13000、GBK、GB18030 介绍和说明文档

GB2312、GB 13000、GBK、GB18030 介绍和说明文档

1、GB2312、GB 13000、GBK、GB18030 介绍GB 2312:又称为GB 2312-80,是一个简体中文字符集的中国国家标准,于1980年由中国国家标准总局发布,1981年5月1日实施,全称为《信息交换用汉字编码字符集基本集》,规定了6763个汉字和682个非汉字图形。

GB 13000:为了便于多个文种的同时处理,国际标准化组织下属编码字符集工作组研制了新的编码字符集标准,ISO/IEC 10646。

该标准第一次颁布是在1993年,当时只颁布了其第一部分,即ISO/IEC 10646.1: 1993,我国相应的国家标准是GB 13000.1-93《信息技术通用多八位编码字符集(UCS) 第一部分:体系结构与基本多文种平面》。

制定这个标准的目的是对世界上的所有文字统一编码,以实现世界上所有文字在计算机上的统一处理。

GBK:随着信息技术在各行业应用的深入,GB 2312 收录汉字数量不足的缺点已经初步显露出来。

例如:"镕"字现在是高频率使用字,而GB 2312 却没有为它编码,因而,政府、新闻、出版、印刷等行业和部门在使用中感到十分不便。

1995年,全世界大多数的PC 操作系统都实现了16/32 位。

GB 13000.1 的实现出现了一线曙光。

一方面为了对GB 2312 进行扩充,一方面顺应当时技术的发展向GB 13000.1 推进,同时兼顾当时最广泛采用GB 2312 内码系统。

原电子部和原国家技术监督局联合颁布了指导性技术文件《汉字内码扩展规范》1.0版,即GBK 。

在GBK的内码系统中,GB 2312 汉字所在码位保持不便,这样,保证了GBK 对GB 2312 的完全兼容。

同时,GBK 内码与GB 13000.1 代码一一对应,为GBK 向GB 13000.1 的转换提供了解决办法。

微软对GB 2312 的扩展,也就是CP936 字码表(Code Page 936)的扩展(原来的CP936 和GB 2312-80 一模一样),最初出现于Windows 95 简体中文版中。

刨根究底字符编码之六——简体汉字编码中区位码、国标码、内码、外码、字形码的区别及关系

刨根究底字符编码之六——简体汉字编码中区位码、国标码、内码、外码、字形码的区别及关系

刨根究底字符编码之六——简体汉字编码中区位码、国标码、内码、外码、字形码的区别及关系简体汉字编码中区位码、国标码、内码、外码、字形码的区别及关系GB2312、GBK、GB18030等GB类汉字编码⽅案的具体实现⽅式是怎样的?区位码是什么?国标码是什么?内码、外码、字形码⼜是什么意思?它们是如何转换的,⼜为什么要这样转换?下⾯以GB2312为例来加以说明(由于GBK、GB18030是以GB2312为基础扩展⽽来,因此编码实现⽅式与GB2312⼀样)。

⼀、区位码1.整个GB2312字符集分成94个区,每区有94个位,每个区位上只有⼀个字符,即每区含有94个汉字或符号,⽤所在的区和位来对字符进⾏编码(实际上就是字符编号、码点编号),因此称为区位码(或许叫“区位号”更为恰当)。

换⾔之,GB2312将包括汉字在内的所有字符编⼊⼀个94 * 94的⼆维表,⾏就是“区”、列就是“位”,每个字符由区、位唯⼀定位,其对应的区、位编号合并就是区位码。

⽐如“万”字在45区82位,所以“万”字的区位码是:45 82(注意,GB类汉字编码为双字节编码,因此,45相当于⾼位字节,82相当于低位字节)。

2.GB2312字符集中:1)01~09区(682个):特殊符号、数字、英⽂字符、制表符等,包括拉丁字母、希腊字母、⽇⽂平假名及⽚假名字母、俄语西⾥尔字母等在内的682个全⾓字符;2)10~15区:空区,留待扩展;3)16~55区(3755个):常⽤汉字(也称⼀级汉字),按拼⾳排序;4)56~87区(3008个):⾮常⽤汉字(也称⼆级汉字),按部⾸/笔画排序;5)88~94区:空区,留待扩展。

⼆、国标码(交换码)1.为了避开ASCII字符中的不可显⽰字符0000 0000 ~ 0001 1111(⼗六进制为0 ~ 1F,⼗进制为0 ~ 31)及空格字符0010 0000(⼗六进制为20,⼗进制为32)(⾄于为什么要避开、⼜为什么只避开ASCII中0~32的不可显⽰字符和空格字符,后⽂有解释),国标码(⼜称为交换码)规定表⽰汉字的范围为(0010 0001,0010 0001) ~ (0111 1110,0111 1110),⼗六进制为(21,21) ~ (7E,7E),⼗进制为(33,33) ~ (126,126)(注意,GB类汉字编码为双字节编码)。

汉字的机内码是指在计算机中表示一个汉字的编码

汉字的机内码是指在计算机中表示一个汉字的编码

汉字的机内码是指在计算机中表示一个汉字的编码。

机内码与区位码稍有区别。

汉字区位码的区码和位码的取值均在1~94之间,如直接用区位码作为机内码,就会与基本ASCII码混淆。

为了避免机内码与基本ASCII码的冲突,需要避开基本ASCII码中的控制码(00H~1FH),还需与基本ASCII码中的字符相区别。

为了实现这两点,可以先在区码和位码分别加上20H,在此基础上再加80H(此处“H”表示前两位数字为十六进制数)。

经过这些处理,用机内码表示一个汉字需要占两个字节,分别称为高位字节和低位字节,这两位字节的机内码按如下规则表示:高位字节=区码+20H+80H(或区码+A0H)低位字节=位码+20H+80H(或位码+AOH)由于汉字的区码与位码的取值范围的十六进制数均为01H~5EH(即十进制的01~94),所以汉字的高位字节与低位字节的取值范围则为A1H~FEH(即十进制的161~254)。

例如,汉字“啊”的区位码为1601,区码和位码分别用十六进制表示即为1001H,它的机内码的高位字节为B0H,低位字节为A1H,机内码就是B0A1H。

2603 = 1A03H 区位码+ A0A0H= BAA3H 机内码[本帖最后由rossini23 于2006-10-11 13:28 编辑]计算机处理汉字信息的前提条件是对每个汉字进行编码,这些编码统称为汉字编码。

汉字信息在系统内传送的过程就是汉字编码转换的过程。

汉字交换码:汉字信息处理系统之间或通信系统之间传输信息时,对每一个汉字所规定的统一编码,我国已指定汉字交换码的国家标准“信息交换用汉字编码字符集——基本集”,代号为GB 2312—80,又称为“国标码”。

国标码:所有汉字编码都应该遵循这一标准,汉字机内码的编码、汉字字库的设计、汉字输入码的转换、输出设备的汉字地址码等,都以此标准为基础。

GB 2312—80就是国标码。

该码规定:一个汉字用两个字节表示,每个字节只有7位,与ASCII码相似。

关于汉字编码

关于汉字编码
60个繁体汉字,808个符号,总计13868个字符,目前普遍使用于台湾、香港等地区。台湾教育部标准宋体楷体等港台大多数字体支持这个字符集的显示。
③ GBK字符集,又称大字符集(GB=GuóBiāo国标,K=扩展),包含以上两种字符集汉字,收入21003个汉字,882个符号,共计21885个字符,包括了中日韩(CJK)统一汉字20902个、扩展A集(CJK Ext-A) 中的汉字52个。Windows 95\98简体中文版就带有这个GBK.txt文件。宋体、隶书、黑体、幼圆、华文中宋、华文细黑、华文楷体、标楷体(DFKai-SB)、Arial Unicode MS、MingLiU、PMingLiU等字体支持显示这个字符集。微软拼音输入法2003、全拼、紫光拼音等输入法,能够录入如镕镕炁夬喆嚞姤赟赟䶮龑昳堃慜靕臹等GBK简繁体汉字。
④ GB18030字符集,包含GBK字符集、CJK Ext-A 全部6582个汉字,共计27533个汉字。宋体-18030、方正楷体(FZKai-Z03)、书同文楷体(MS Song)宋体(ht_cjk+)、香港华康标准宋体(DFSongStd)、华康香港标准楷体、CERG Chinese Font、韩国New Gulim,以及微软Windows Vista操作系统提供的宋黑楷仿宋等字体亦支持这个字符集的显示。Windows 98支持这个字符集,以下的字符集则不支持。手写输入法逍遥笔4.0版支持GB18030字符集及方正超大字符集汉字的录入。
关于Unicode
由于各国国家标准字集所收的汉字字数、常用字的差异,虽然象中国两岸GB/BIG5字集常用字基本类似,转换后阅读并不成问题,但是这种编码转换的混乱关系,对文字交流始终是一种障碍。因此相关国家的标准化组织和文字工作者经过共同努力,终于在93年完成了包含中日韩(CJK)汉字的Unicode 汉字标准ISO 10646.1。 Unicode是完全双字节表示的多国文字编码体系,编码空间0x0000-0xFFFF。 ISO 10646.1汉字标准使用编码0x4E00-9FA5,共包含20902个汉字。其中: 大陆(S)提出的汉字17124个,台湾(T)提出的汉字17258个; S与T的并集,即中国(C)提出的汉字为20158个。 日本(J)提出的汉字为12157个,中国未提出的690个(Ja); 韩国(K)提出的汉字为7477个,其中中国未提出的90个(Ka); Ja与Ka并集共744字。 支持Unicode编码的相关电脑系统软件,如Unix, Win95已有推出,但是由于Unicode的ASCII码是用双字节编码(即一般电脑系统中的单字节ASCII码前加 0x00),同时其汉字编码与各国的现有编码也不兼容,造成现有的软件和数据不能直接使用,所以目前完全使用Unicode软件系统的用户并不多,大多数只将它此作为一个国际语言编码标准来使用。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.ASCII与Binary我们日常接触到的文件分ASCII和Binary两种。

ASCII是“美国信息交换标准编码”的英文字头缩写,可称之为“美标”。

美标规定了用从0到127的128个数字来代表信息的规范编码,其中包括33个控制码,一个空格码,和94个形象码。

形象码中包括了英文大小写字母,阿拉伯数字,标点符号等。

我们平时阅读的英文电脑文本,就是以形象码的方式传递和存储的。

美标是国际上大部分大小电脑的通用编码。

然而电脑中的一个字符大都是用一个八位数的二进制数字表示。

这样每一字符便可能有256个不同的数值。

由于美标只规定了128个编码,剩下的另外128个数码没有规范,各家用法不一。

另外美标中的33个控制码,各厂家用法也不尽一致。

这样我们在不同电脑间交换文件的时候,就有必要区分两类不同的文件。

第一类文件中每一个字都是美标形象码或空格码。

这类文件称为“美标文本文件”(ASCII Text Files),或略为“文本文件”,通常可在不同电脑系统间直接交换。

第二类文件,也就是含有控制码或非美标码的文件,通常不能在不同电脑系统间直接交换。

这类文件有一个通称,叫“二进制文件”(Binary Files).2.国标、区位、“准国标”“国标”是“中华人民共和国国家标准信息交换用汉字编码”的简称。

国标表(基本表)把七千余汉字、以及标点符号、外文字母等,排成一个94行、94列的方阵。

方阵中每一横行叫一个“区”,每个区有九十四个“位”。

一个汉字在方阵中的坐标,称为该字的“区位码”。

例如“中”字在方阵中处于第54区第48位,它的区位码就是5448.其实94这个数字。

它是美标中形象码的总数。

国标表沿用这个数字,本意大概是要用两个美标形象符代表一个汉字。

由于美标形象符的编码是从33到126,汉字区、位码如果各加上32,就会与美标形象码的范围重合。

如上例“中”字区、位码加上32后,得86,80。

这两个数字的十六进制放在一起得5650,称为该字的“国标码”,而与其相对应的两个美标符号,VP,也就是“中”字的“国标符”了。

这样就产生了一个如何区分国标符与美标符的问题。

在一个中英文混用的文件里,“VP”到底代表“中”字呢,还是代表某个英文字头缩写?电子工业部第六研究所开发CCDOS的时候,使用了一个简便的解决方案:把国标码的两个数字各加上128,上升到非美标码的位置。

(改变后的国标码,习惯上仍叫“国标”。

)这个方案固然解决了原来的问题,可是新的问题随之产生。

中文文件成了“二进制文件”,既不能可靠地在不同电脑系统间交换,也不与市场上大部分以美标符号为设计对象的软件兼容。

为了区分以上两种“国标”,我们把原与美标形象码重合的国标码称为“纯国标” ,而把CCDOS加上128的国标码称为“准国标”。

3.GBK码:GBK码是GB码的扩展字符编码,对多达2万多的简繁汉字进行了编码,简体版的Win95和Win98都是使用GBK作系统内码。

从实际运用来看,微软自win95简体中文版开始,系统就采用GBK代码,它包括了TrueType宋体、黑体两种GBK字库(北京中易电子公司提供),可以用于显示和打印,并提供了四种GBK汉字的输入法。

此外,浏览器IE4.0简体、繁体中文版内部提供了一个GBK-BIG5代码双向转换功能。

此外,微软公司为IE提供的语言包中,简体中文支持(Simplified Chinese Language Support Kit)的两种字库宋体、黑体,也是GBK汉字(珠海四通电脑排版系统开发公司提供)。

其他一些中文字库生产厂商,也开始提供TrueType或PostScript GBK字库。

许多外挂式的中文平台,如南极星、四通利方(Richwin)等,提供GBK码的支持,包括字库、输入法和GBK与其他中文代码的转化器。

互联网方面,许多网站网页使用GBK代码。

但是多数搜索引擎都不能很好的支持GBK汉字搜索,大陆地区的搜索引擎有些能不完善的支持GBK汉字检索。

其实,GBK是又一个汉字编码标准,全称《汉字内码扩展规范》(Chinese Internatial Code Specification),1995年颁布。

GB是国标,K是汉字“扩展”的汉语拼音第一个字母。

GBK向下与GB-2312编码兼容,向上支持ISO 10646.1国际标准,是前者向后者过渡的一个承启标准。

GBK规范收录了ISO 10646.1中的全部CJK汉字和符号,并有所补充。

具体包括:GB 2312中的全部汉字、非汉字符号;GB 13000.1中的其他CJK汉字。

以上合计20902个GB化汉字;《简化总表中》未收入GB 13000.1的52个汉字;《康熙字典》以及《辞海》中未被收入GB 13000.1的28个部首及重要构件;13个汉字结构符;BIG-5中未被GB 2312收入、但存在于GB 13000.1的139个图形符号;GB 12345增补的6个拼音符号;GB 12345增补的19个竖排图形符号(GB 12345较GB 2312增补竖排标点符号29个,其中10个未被GB 13000.1收入,故GBK亦不收);从GB 13000.1的CJK 兼容区挑选出的21个汉字;GB 13000.1收入的31个IBM OS/2专用符号。

GBK亦采用双字节表示,总体编码范围为0x8140~0xFEFE之间,首字节在0x81~0xFE之间,尾字节在0x40~0xFE之间,剔除0x××7F一条线,总计23940个码位,共收入21886个汉字和图形符号,其中汉字(包括部首和构件)21003个,图形符号883个。

4.BIG5码:BIG5码是针对繁体汉字的汉字编码,目前在台湾、香港的电脑系统中得到普遍应用。

BIG5码的编码范围参考下文。

5.HZ码:HZ码是在Internet上广泛使用的一种汉字编码。

“HZ”方案的特点,是以“纯国标”的中文与美标码混用。

那么“HZ”是怎样区分国标符和美标符的呢?答案其实也很简单:当一串美标码中间插入一段国标码的时候,我们便在国标码的前面加上~,后面加上~。

这些附加码分别叫“逃出码”和“逃入码”。

由于这些附加码本身也是美标形象码,整个文件就俨然是一个美标文本文件,可以安然地在电脑网上传递,也和大部分英文文本处理软件兼容。

6.ISO-2022CJK码:ISO-2022是国际标准组织(ISO)为各种语言字符制定的编码标准。

采用二个字节编码,其中汉语编码称ISO-2022 CN,日语、韩语的编码分别称JP、KR。

一般将三者合称CJK 码。

目前CJK码主要在Internet网络中使用。

7.UCS 和ISO 10646:1993年,国际标准ISO10646 定义了通用字符集(Universal Character Set, UCS)。

UCS 是所有其他字符集标准的一个超集。

它保证与其他字符集是双向兼容的。

就是说, 如果你将任何文本字符串翻译到UCS格式, 然后再翻译回原编码, 你不会丢失任何信息。

UCS 包含了用于表达所有已知语言的字符。

不仅包括拉丁语,希腊语, 斯拉夫语,希伯来语,阿拉伯语,亚美尼亚语和乔治亚语的描述, 还包括中文, 日文和韩文这样的象形文字, 以及平假名, 片假名, 孟加拉语, 旁遮普语果鲁穆奇字符(Gurmukhi), 泰米尔语, 印.埃纳德语(Kannada), Malayalam, 泰国语, 老挝语, 汉语拼音(Bopomofo), Hangul, Devangari, Gujarati, Oriya, Telugu 以及其它语种。

对于还没有加入的语言, 由于正在研究怎样在计算机中最好地编码它们, 因而最终它们都将被加入。

这些语言包括Tibetian, 高棉语, Runic(古代北欧文字), 埃塞俄比亚语, 其他象形文字, 以及各种各样的印-欧语系的语言, 还包括挑选出来的艺术语言比如Tengwar, Cirth 和克林贡语(Klingon)。

UCS 还包括大量的图形的, 印刷用的, 数学用的和科学用的符号, 包括所有由TeX, Postscript, MS-DOS,MS-Windows, Macintosh, OCR 字体, 以及许多其他字处理和出版系统提供的字符。

ISO 10646 定义了一个31 位的字符集。

然而, 在这巨大的编码空间中, 迄今为止只分配了前65534 个码位(0x0000 到0xFFFD)。

这个UCS的16位子集称为基本多语言面(Basic Multilingual Plane, BMP)。

将被编码在16位BMP以外的字符都属于非常特殊的字符(比如象形文字), 且只有专家在历史和科学领域里才会用到它们。

按当前的计划, 将来也许再也不会有字符被分配到从0x000000到0x10FFFF这个覆盖了超过100万个潜在的未来字符的21 位的编码空间以外去了。

ISO 10646-1标准第一次发表于1993年, 定义了字符集与BMP 中内容的架构。

定义BMP以外的字符编码的第二部分ISO 10646-2 正在准备中, 但也许要过好几年才能完成。

新的字符仍源源不断地加入到BMP 中, 但已经存在的字符是稳定的且不会再改变了。

UCS 不仅给每个字符分配一个代码, 而且赋予了一个正式的名字。

表示一个UCS 或Unicode 值的十六进制数, 通常在前面加上"U+", 就象U+0041 代表字符"拉丁大写字母A"。

UCS字符U+0000到U+007F 与US-ASCII(ISO 646) 是一致的, U+0000 到U+00FF 与ISO 8859-1(Latin-1) 也是一致的。

从U+E000 到U+F8FF, 已经BMP 以外的大范围的编码是为私用保留的。

1993年,ISO10646中定义的USC-4 (Universal Character Set) ,使用了4 个字节的宽度以容纳足够多的相当可观的空间,但是这个过于肥胖的字符标准在当时乃至现在都有其不现实的一面,就是会过分侵占存储空间并影响信息传输的效率。

与此同时,Unicode 组织于约10 年前以Universal, Unique和Uniform 为主旨也开始开发一个16位字符标准,为避免两种16位编码的竞争,1992年两家组织开始协商,以期折衷寻找共同点,这就是今天的UCS-2 (BMP,Basic Multilingual Plane,16bit) 和Unicode,但它们仍然是不同的方案。

8.Unicode码:关于Unicode我们需要追溯一下它产生的源源。

当计算机普及到东亚时,遇到了使用表意字符而非字母语言的中、日、韩等国家。

在这些国家使用的语言中常用字符多达几千个,而原来字符采用的是单字节编码,一张代码页中最多容纳的字符只有28=256个,对于使用表意字符的语言是在无能为力。

相关文档
最新文档