2汉字信息在计算机内部的表示
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
按国家/地区分别编码。 需要一整套复杂的指明/调用的控制功能来
区分代码空间中的字汇。
2019年6月28日8时33分
16/70
§3 汉字代码
什么是汉字代码 汉字交换码 汉字机内码 汉字区位码 交换码、 区位码和内码关系 代码页 汉字编码字符集
2019年6月28日8时33分
JIS-Roman(日本国家指定的ASCII码标准,代号为JIS X 02011997);
KS-Roman(韩国制订的国家ASCII码标准,代号为KS X 1003:1993)。
这些字符集的编码与ASCII码一样,采用7位二进制数编码, 收录的字符也基本与ASCII码一样,只是个别字符作了调 整。
第二章 汉字信息在计算机内部的表示
延边大学计算机科学与技术
2019年6月28日8时33分
内容
ASCII码 中文信息在计算机内的表示 汉字代码 常用汉字代码集 Internet上的汉字交换码
2019年6月28日8时33分
2/70
§1 ASCII码
ASCII码 扩展ASCII CJK-Roman
绝大多数计算机系统所采用的字符集,都 是以ISO/IEC 2022为基础:
GB2312 Big-5 ……
2019年6月28日8时33分
11/70
2.2 ISO/IEC 2022-单八位代码空间图
2019年6月28日8时33分
12/70
2.2 ISO/IEC 2022-单八位代码空间图(续)
19/70
5.3 汉字机内码
汉字机内码
用于信息处理的汉字代码 也称汉字处理码、处理码、机内码、内码
汉字内码长度可以不同,通常是双字节 对于单字节操作系统内核,汉字代码为了与ASCII
码相区分,往往把内码的两字节(至少把第一个 字节)的最高位(Bit 7)置为1。
2019年6月28日8时33分
2019年6月28日8时33分
26/70
4.1 GB2312-80(续)
高位字节(1-94):94个区 低位字节(1-94):94个位 国标码与区位码 如汉字“啊”,在第16区中的第1位,则 国标码:1001(H) 区位码:1601
2019年6月28日8时33分
27/70
4.1 GB2312-80(续)
J=Q+32 --再转换为十六进制数 H=W+32 --再转换为十六进制数 C=J+80H L=H+80H
2019年6月28日8时33分
22/70
5.6 代码页
代码页实际上就是各个可用于信息处理的 字符集。
Microsoft公司在开发MS-DOS和Windows 操作系统的多文种产品时,对每个具体的 代码都赋予一个代号,该代号称为“代码 页ID”。
29/70
4.2 BIG-5
Big-5编码是台湾地区信息业常用的汉字编 码字符集,可直接用作内码。
台湾、香港、澳门等地使用 取码范围:
高位:0x81-0xfe 低位:0x40-0x70,0xa1-0xfe
2019年6月28日8时33分
30/70
4.2 BIG-5(续)
Big5编码空间在一个94*157的矩阵中。 Big5有94个区,每个区有157个位,因此最 多可以容纳14758个码元。
17/70
3.1 什么是汉字代码
汉字代码是真实世界的汉字信息在计算机 系统中的最基本表示。
根据汉字信息在计算机内部使用的目的和 存储的方式,汉字代码有各种不同的形式 和称谓。最常使用的有交换码和内码等。
2019年6月28日8时33分
18/70
3.2 汉字交换码
汉字交换码是用于信息交换的汉字代码。 可以用双字节、3字节和4字节表示。 汉字交换码一般不能直接用于信息处理。
ASCII码用7位二进制数定义了128个字符,其中
94个图形字符(可显示字符)
‘0’-‘9’ :30H-39H ‘A’-’Z’: 41H-5AH
‘a’-’z’ : 61H-7AH
30个控制字符
1个空格字符和1个Del(删除)符
2019年6月28日8时33分
4/70
1.1 ASCII码-布局
00-31(十六进制为00H-1FH):第一个控 制字符集C0的编码区域
32(十六进制为20H):Space 127(十六进制为7FH):DELETE 128-160(十六进制为80H-A0H):第二个
控制字符集C1的编码区域 33-126 ( GL ) 和161-254 (GR):两个图形
字符的编码区域
2019年6月28日8时33分
13/70
2.3 字符在ISO/IEC 2022的代码空间
2019年6月28日8时33分
14/70
2.4 汉字在ISO/IEC 2022空间中的位置
2019年6月28日8时33分
15/70
2.5 ISO/IEC 2022的体系结构特点
代码空间狭小,凡是C0, C1控制字符相关 的空间都回避不用;汉字编码没有利用80 (十六进制) 以上的空间。
20/70
5.4 汉字区位码
汉字区位码是汉字交换码的另一种表示形式。
在GB2312中,汉字交换码所占的方阵大小为 94×94,若纵向定义为区号(取值范围为十进制 数的0-94),横向定义为位号(取值范围为十进 制数的0-94),则两个坐标明确了一个汉字的位 置。区号和位号的编号都是从1开始,到94结束。
2019年6月28日8时33分
3/70
1.1 ASCII码
ASCII码是American Standard Code for Information Interchange的简称。
ISO于1991年定义相应的标准ISO/IEC 646:1991,全称为 信息交换用7-位编码字符集(ISO 7-bit coded character set for information interchange)。
例如,在GB2312中,“码”字的交换码为十六进制的 42h/6Bh。无法与ASCII码的“Bk”相区别。
在实际使用中,交换码必须转换为机内码。 但是在国际标准ISO/IБайду номын сангаасC 10646和Unicode中,交
换码与机内码是一致的,因为此时的ASCII码也采 用双字节表示。
2019年6月28日8时33分
4.3 内码的识别问题
苏 州 大 学
CB D5 D6 DD B4 F3 D1 A7苏州大学gb2312
CC 4B D6 DD B4 F3 8C 57蘇州大學GBK
C4 AC A6 7B A4 6A BE C7
BIG-5
2019年6月28日8时33分
为了通用性,国际标准组织(ISO)、国际电子 电气工程师协会(IEEE)以及各个使用汉字的国 家和地区,在计算机技术发展中,都制定了各种 各样的汉字编码字符集。
一般汉字在计算机内的表示都是通过扩充编码长 度来实现。
2019年6月28日8时33分
10/70
2.2 ISO/IEC 2022
ISO/IEC 2022定义了七位代码和八位代码 的空间及其代码空间扩充的技术。
Big5中收录了13494个字符(其中,13053 个汉字和441个非汉字图形字符)。
2019年6月28日8时33分
31/70
4.2 Big-5-代码空间图
2019年6月28日8时33分
32/70
4.2 Big-5-代码分布
2019年6月28日8时33分
33/70
4.2 Big5-问题
Big5中2级汉字的排列都采用按笔画数由少到多排 列。
2019年6月28日8时33分
6/70
1.3 CJK-Roman
CJK-Roman是指在中、日、韩字符编码标准中开发的 ASCII字符,分别称为:
GB-Roman(中国根据ASCII码字符集指定的信息交换用的ASCII字 符编码标准,代号为GB 1988-89);
CNS-Roman(台湾制订的ASCII码标准,代号为CNS 52051989);
2019年6月28日8时33分
8/70
§2中文信息在计算机内的表示
概述 ISO/IEC 2022
字符在ISO/IEC 2022的代码空间 汉字在ISO/IEC 2022空间中的位置 ISO/IEC 2022的体系结构特点
2019年6月28日8时33分
9/70
2.1 概述
在计算机内表示中文信息最早出现在IBM、富士 通、日立等计算机生产厂家的计算机中,但采用 的编码形式互不兼容。
在国际标准化组织ISO的定义中,“无歧义的规 则”很重要,制定这些规则的目的是为了确保 编码的唯一性,避免重码。
2019年6月28日8时33分
24/70
§4 常用汉字编码字符集
GB2312-80 BIG-5 内码识别问题 ISO10646/Unicode GB13000 GBK GB18030-2000
Big5的设计者实际上是从JIS C 626-1978中抄了 很多汉字。因为很多汉字既用于中文,又用于日 文和韩文。
Big5的许多字形与其说是中国汉字,倒不如说与 日本汉字更象。
另外,在Big5中出现了重复定义的字符:“兀”, 编码为A461,C94A;
2019年6月28日8时33分
34/70
例如:中文GB内码的代码页ID=936;Big5 的代码页ID=932
2019年6月28日8时33分
23/70
5.7 汉字编码字符集
按照一组无歧义的规则而定义的汉字字汇的有 序集合。其中每一个汉字与它的代码表示之间 具有一一对应关系。
在信息处理技术中汉字编码字符集用于汉字信 息的表示、交换、传输、处理、存储、输入及 显示。
1-9区:682个符号(2、4、5、6、7、8、9区有 空位164个)
包括:一般符号(间隔、标点、运算、制表)202个 序号60个 数字22个 希腊字母48个 俄文字母66个 汉语拼音26个 拉丁字母52个 日文假名169个 汉语注音37个
2019年6月28日8时33分
2019年6月28日8时33分
7/70
1.3 CJK-Roman-特殊字符
码元值 0x24
0x5C 0x7E
ASCII码 $(美圆)
GB-Roman CNSRoman
¥(人民币) $
JIS-Roman KS-Roman
$
$
\(反斜杠) \(反斜杠) \(反斜杠) ¥(日圆) ₩(韩圆) ~(波浪线) —(顶线) —(顶线) —(顶线) —(顶线)
例如,在GB2312-80中,“ 码”字所在的区号为 “34”,位号为“75”,故其区位码为“3475”。
2019年6月28日8时33分
21/70
5.5 交换码、 区位码和内码关系
在GB2312-80中,交换码、 区位码、处理码之间 存在着简单的转化关系。
设交换码为JH(J为高位,H为低位,为十六进 数),区位码为QW(Q为区号,W为位号,为十 进制数),处理码为CL(C为高位,L为低位,为 十六进制数),则:
2019年6月28日8时33分
25/70
4.1 GB2312-80
GB2312-80:信息交换用汉字编码字符集(基本 集)
双字节内码 每个字节使用低7位 从“0000,0001”---“0101,1110” 即1-0x5E(1-94) 内码的空间:94*94=8836 收录汉字6763个,符号682个
2019年6月28日8时33分
5/70
1.2 扩展ASCII
最简单的扩展方式:采用8位表示扩展 ASCII码字符集。
ISO 8859的第1至第10部分(Information Processing—8 Bit Single-Byte Coded Graphic Character Set)标准中定义了新增 的128个码元的字符编码集。这10个部分分 别定义了ASCII码和其扩展的字符集。
28/70
4.1 GB2312-80(续)
10-15区:空 88-94区:空 16-87区:6763个汉字
16-55区:一级汉字3755个 55区有5个空位,从89-94 56-87区:二级汉字3008个 一级汉字按照音、笔形排列 二级汉字按照部首排列
2019年6月28日8时33分
区分代码空间中的字汇。
2019年6月28日8时33分
16/70
§3 汉字代码
什么是汉字代码 汉字交换码 汉字机内码 汉字区位码 交换码、 区位码和内码关系 代码页 汉字编码字符集
2019年6月28日8时33分
JIS-Roman(日本国家指定的ASCII码标准,代号为JIS X 02011997);
KS-Roman(韩国制订的国家ASCII码标准,代号为KS X 1003:1993)。
这些字符集的编码与ASCII码一样,采用7位二进制数编码, 收录的字符也基本与ASCII码一样,只是个别字符作了调 整。
第二章 汉字信息在计算机内部的表示
延边大学计算机科学与技术
2019年6月28日8时33分
内容
ASCII码 中文信息在计算机内的表示 汉字代码 常用汉字代码集 Internet上的汉字交换码
2019年6月28日8时33分
2/70
§1 ASCII码
ASCII码 扩展ASCII CJK-Roman
绝大多数计算机系统所采用的字符集,都 是以ISO/IEC 2022为基础:
GB2312 Big-5 ……
2019年6月28日8时33分
11/70
2.2 ISO/IEC 2022-单八位代码空间图
2019年6月28日8时33分
12/70
2.2 ISO/IEC 2022-单八位代码空间图(续)
19/70
5.3 汉字机内码
汉字机内码
用于信息处理的汉字代码 也称汉字处理码、处理码、机内码、内码
汉字内码长度可以不同,通常是双字节 对于单字节操作系统内核,汉字代码为了与ASCII
码相区分,往往把内码的两字节(至少把第一个 字节)的最高位(Bit 7)置为1。
2019年6月28日8时33分
2019年6月28日8时33分
26/70
4.1 GB2312-80(续)
高位字节(1-94):94个区 低位字节(1-94):94个位 国标码与区位码 如汉字“啊”,在第16区中的第1位,则 国标码:1001(H) 区位码:1601
2019年6月28日8时33分
27/70
4.1 GB2312-80(续)
J=Q+32 --再转换为十六进制数 H=W+32 --再转换为十六进制数 C=J+80H L=H+80H
2019年6月28日8时33分
22/70
5.6 代码页
代码页实际上就是各个可用于信息处理的 字符集。
Microsoft公司在开发MS-DOS和Windows 操作系统的多文种产品时,对每个具体的 代码都赋予一个代号,该代号称为“代码 页ID”。
29/70
4.2 BIG-5
Big-5编码是台湾地区信息业常用的汉字编 码字符集,可直接用作内码。
台湾、香港、澳门等地使用 取码范围:
高位:0x81-0xfe 低位:0x40-0x70,0xa1-0xfe
2019年6月28日8时33分
30/70
4.2 BIG-5(续)
Big5编码空间在一个94*157的矩阵中。 Big5有94个区,每个区有157个位,因此最 多可以容纳14758个码元。
17/70
3.1 什么是汉字代码
汉字代码是真实世界的汉字信息在计算机 系统中的最基本表示。
根据汉字信息在计算机内部使用的目的和 存储的方式,汉字代码有各种不同的形式 和称谓。最常使用的有交换码和内码等。
2019年6月28日8时33分
18/70
3.2 汉字交换码
汉字交换码是用于信息交换的汉字代码。 可以用双字节、3字节和4字节表示。 汉字交换码一般不能直接用于信息处理。
ASCII码用7位二进制数定义了128个字符,其中
94个图形字符(可显示字符)
‘0’-‘9’ :30H-39H ‘A’-’Z’: 41H-5AH
‘a’-’z’ : 61H-7AH
30个控制字符
1个空格字符和1个Del(删除)符
2019年6月28日8时33分
4/70
1.1 ASCII码-布局
00-31(十六进制为00H-1FH):第一个控 制字符集C0的编码区域
32(十六进制为20H):Space 127(十六进制为7FH):DELETE 128-160(十六进制为80H-A0H):第二个
控制字符集C1的编码区域 33-126 ( GL ) 和161-254 (GR):两个图形
字符的编码区域
2019年6月28日8时33分
13/70
2.3 字符在ISO/IEC 2022的代码空间
2019年6月28日8时33分
14/70
2.4 汉字在ISO/IEC 2022空间中的位置
2019年6月28日8时33分
15/70
2.5 ISO/IEC 2022的体系结构特点
代码空间狭小,凡是C0, C1控制字符相关 的空间都回避不用;汉字编码没有利用80 (十六进制) 以上的空间。
20/70
5.4 汉字区位码
汉字区位码是汉字交换码的另一种表示形式。
在GB2312中,汉字交换码所占的方阵大小为 94×94,若纵向定义为区号(取值范围为十进制 数的0-94),横向定义为位号(取值范围为十进 制数的0-94),则两个坐标明确了一个汉字的位 置。区号和位号的编号都是从1开始,到94结束。
2019年6月28日8时33分
3/70
1.1 ASCII码
ASCII码是American Standard Code for Information Interchange的简称。
ISO于1991年定义相应的标准ISO/IEC 646:1991,全称为 信息交换用7-位编码字符集(ISO 7-bit coded character set for information interchange)。
例如,在GB2312中,“码”字的交换码为十六进制的 42h/6Bh。无法与ASCII码的“Bk”相区别。
在实际使用中,交换码必须转换为机内码。 但是在国际标准ISO/IБайду номын сангаасC 10646和Unicode中,交
换码与机内码是一致的,因为此时的ASCII码也采 用双字节表示。
2019年6月28日8时33分
4.3 内码的识别问题
苏 州 大 学
CB D5 D6 DD B4 F3 D1 A7苏州大学gb2312
CC 4B D6 DD B4 F3 8C 57蘇州大學GBK
C4 AC A6 7B A4 6A BE C7
BIG-5
2019年6月28日8时33分
为了通用性,国际标准组织(ISO)、国际电子 电气工程师协会(IEEE)以及各个使用汉字的国 家和地区,在计算机技术发展中,都制定了各种 各样的汉字编码字符集。
一般汉字在计算机内的表示都是通过扩充编码长 度来实现。
2019年6月28日8时33分
10/70
2.2 ISO/IEC 2022
ISO/IEC 2022定义了七位代码和八位代码 的空间及其代码空间扩充的技术。
Big5中收录了13494个字符(其中,13053 个汉字和441个非汉字图形字符)。
2019年6月28日8时33分
31/70
4.2 Big-5-代码空间图
2019年6月28日8时33分
32/70
4.2 Big-5-代码分布
2019年6月28日8时33分
33/70
4.2 Big5-问题
Big5中2级汉字的排列都采用按笔画数由少到多排 列。
2019年6月28日8时33分
6/70
1.3 CJK-Roman
CJK-Roman是指在中、日、韩字符编码标准中开发的 ASCII字符,分别称为:
GB-Roman(中国根据ASCII码字符集指定的信息交换用的ASCII字 符编码标准,代号为GB 1988-89);
CNS-Roman(台湾制订的ASCII码标准,代号为CNS 52051989);
2019年6月28日8时33分
8/70
§2中文信息在计算机内的表示
概述 ISO/IEC 2022
字符在ISO/IEC 2022的代码空间 汉字在ISO/IEC 2022空间中的位置 ISO/IEC 2022的体系结构特点
2019年6月28日8时33分
9/70
2.1 概述
在计算机内表示中文信息最早出现在IBM、富士 通、日立等计算机生产厂家的计算机中,但采用 的编码形式互不兼容。
在国际标准化组织ISO的定义中,“无歧义的规 则”很重要,制定这些规则的目的是为了确保 编码的唯一性,避免重码。
2019年6月28日8时33分
24/70
§4 常用汉字编码字符集
GB2312-80 BIG-5 内码识别问题 ISO10646/Unicode GB13000 GBK GB18030-2000
Big5的设计者实际上是从JIS C 626-1978中抄了 很多汉字。因为很多汉字既用于中文,又用于日 文和韩文。
Big5的许多字形与其说是中国汉字,倒不如说与 日本汉字更象。
另外,在Big5中出现了重复定义的字符:“兀”, 编码为A461,C94A;
2019年6月28日8时33分
34/70
例如:中文GB内码的代码页ID=936;Big5 的代码页ID=932
2019年6月28日8时33分
23/70
5.7 汉字编码字符集
按照一组无歧义的规则而定义的汉字字汇的有 序集合。其中每一个汉字与它的代码表示之间 具有一一对应关系。
在信息处理技术中汉字编码字符集用于汉字信 息的表示、交换、传输、处理、存储、输入及 显示。
1-9区:682个符号(2、4、5、6、7、8、9区有 空位164个)
包括:一般符号(间隔、标点、运算、制表)202个 序号60个 数字22个 希腊字母48个 俄文字母66个 汉语拼音26个 拉丁字母52个 日文假名169个 汉语注音37个
2019年6月28日8时33分
2019年6月28日8时33分
7/70
1.3 CJK-Roman-特殊字符
码元值 0x24
0x5C 0x7E
ASCII码 $(美圆)
GB-Roman CNSRoman
¥(人民币) $
JIS-Roman KS-Roman
$
$
\(反斜杠) \(反斜杠) \(反斜杠) ¥(日圆) ₩(韩圆) ~(波浪线) —(顶线) —(顶线) —(顶线) —(顶线)
例如,在GB2312-80中,“ 码”字所在的区号为 “34”,位号为“75”,故其区位码为“3475”。
2019年6月28日8时33分
21/70
5.5 交换码、 区位码和内码关系
在GB2312-80中,交换码、 区位码、处理码之间 存在着简单的转化关系。
设交换码为JH(J为高位,H为低位,为十六进 数),区位码为QW(Q为区号,W为位号,为十 进制数),处理码为CL(C为高位,L为低位,为 十六进制数),则:
2019年6月28日8时33分
25/70
4.1 GB2312-80
GB2312-80:信息交换用汉字编码字符集(基本 集)
双字节内码 每个字节使用低7位 从“0000,0001”---“0101,1110” 即1-0x5E(1-94) 内码的空间:94*94=8836 收录汉字6763个,符号682个
2019年6月28日8时33分
5/70
1.2 扩展ASCII
最简单的扩展方式:采用8位表示扩展 ASCII码字符集。
ISO 8859的第1至第10部分(Information Processing—8 Bit Single-Byte Coded Graphic Character Set)标准中定义了新增 的128个码元的字符编码集。这10个部分分 别定义了ASCII码和其扩展的字符集。
28/70
4.1 GB2312-80(续)
10-15区:空 88-94区:空 16-87区:6763个汉字
16-55区:一级汉字3755个 55区有5个空位,从89-94 56-87区:二级汉字3008个 一级汉字按照音、笔形排列 二级汉字按照部首排列
2019年6月28日8时33分