null第 二 章
汉字信息在计算机内部的
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
示 第 二 章
汉字信息在计算机内部的表示 延边大学计算机科学与技术内容内容ASCII码
中文信息在计算机内的表示
汉字代码
常用汉字代码集
Internet上的汉字交换码§1 ASCII码§1 ASCII码ASCII码
扩展ASCII
CJK-Roman
1.1 ASCII码1.1 ASCII码ASCII码是American Standard Code for Information Interchange的简称。
ISO于1991年定义相应的
标准
excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载
ISO/IEC 646:1991,全称为信息交换用7-位编码字符集(ISO 7-bit coded character set for information interchange)。
ASCII码用7位二进制数定义了128个字符,其中
94个图形字符(可显示字符)
‘0’-‘9’ :30H-39H
‘A’-’Z’: 41H-5AH
‘a’-’z’ : 61H-7AH
30个控制字符
1个空格字符和1个Del(删除)符
1.1 ASCII码-布局1.1 ASCII码-布局1.2 扩展ASCII1.2 扩展ASCII最简单的扩展方式:采用8位表示扩展ASCII码字符集。
ISO 8859的第1至第10部分(Information Processing—8 Bit Single-Byte Coded Graphic Character Set)标准中定义了新增的128个码元的字符编码集。这10个部分分别定义了ASCII码和其扩展的字符集。 1.3 CJK-Roman1.3 CJK-RomanCJK-Roman是指在中、日、韩字符编码标准中开发的ASCII字符,分别称为:
GB-Roman(中国根据ASCII码字符集指定的信息交换用的ASCII字符编码标准,代号为GB 1988-89);
CNS-Roman(台湾制订的ASCII码标准,代号为CNS 5205-1989);
JIS-Roman(日本国家指定的ASCII码标准,代号为JIS X 0201-1997);
KS-Roman(韩国制订的国家ASCII码标准,代号为KS X 1003:1993)。
这些字符集的编码与ASCII码一样,采用7位二进制数编码,收录的字符也基本与ASCII码一样,只是个别字符作了调整。 1.3 CJK-Roman-特殊字符1.3 CJK-Roman-特殊字符§2中文信息在计算机内的表示§2中文信息在计算机内的表示概述
ISO/IEC 2022
字符在ISO/IEC 2022的代码空间
汉字在ISO/IEC 2022空间中的位置
ISO/IEC 2022的体系结构特点2.1 概述2.1 概述 在计算机内表示中文信息最早出现在IBM、富士通、日立等计算机生产厂家的计算机中,但采用的编码形式互不兼容。
为了通用性,国际标准组织(ISO)、国际电子电气
工程
路基工程安全技术交底工程项目施工成本控制工程量增项单年度零星工程技术标正投影法基本原理
师协会(IEEE)以及各个使用汉字的国家和地区,在计算机技术发展中,都制定了各种各样的汉字编码字符集。
一般汉字在计算机内的表示都是通过扩充编码长度来实现。2.2 ISO/IEC 2022 2.2 ISO/IEC 2022 ISO/IEC 2022定义了七位代码和八位代码的空间及其代码空间扩充的技术。
绝大多数计算机系统所采用的字符集,都是以ISO/IEC 2022为基础:
GB2312
Big-5
……
2.2 ISO/IEC 2022-单八位代码空间图 2.2 ISO/IEC 2022-单八位代码空间图 2.2 ISO/IEC 2022-单八位代码空间图(续)2.2 ISO/IEC 2022-单八位代码空间图(续)00-31(十六进制为00H-1FH):第一个控制字符集C0的编码区域
32(十六进制为20H):Space
127(十六进制为7FH):DELETE
128-160(十六进制为80H-A0H):第二个控制字符集C1的编码区域
33-126 ( GL ) 和161-254 (GR):两个图形字符的编码区域2.3 字符在ISO/IEC 2022的代码空间2.3 字符在ISO/IEC 2022的代码空间2.4 汉字在ISO/IEC 2022空间中的位置 2.4 汉字在ISO/IEC 2022空间中的位置 2.5 ISO/IEC 2022的体系结构特点2.5 ISO/IEC 2022的体系结构特点代码空间狭小,凡是C0, C1控制字符相关的空间都回避不用;汉字编码没有利用80 (十六进制) 以上的空间。
按国家/地区分别编码。
需要一整套复杂的指明/调用的控制功能来区分代码空间中的字汇。§3 汉字代码§3 汉字代码什么是汉字代码
汉字交换码
汉字机内码
汉字区位码
交换码、 区位码和内码关系
代码页
汉字编码字符集
3.1 什么是汉字代码3.1 什么是汉字代码汉字代码是真实世界的汉字信息在计算机系统中的最基本表示。
根据汉字信息在计算机内部使用的目的和存储的方式,汉字代码有各种不同的形式和称谓。最常使用的有交换码和内码等。 3.2 汉字交换码3.2 汉字交换码汉字交换码是用于信息交换的汉字代码。
可以用双字节、3字节和4字节表示。
汉字交换码一般不能直接用于信息处理。
例如,在GB2312中,“码”字的交换码为十六进制的42h/6Bh。无法与ASCII码的“Bk”相区别。
在实际使用中,交换码必须转换为机内码。
但是在国际标准ISO/IEC 10646和Unicode中,交换码与机内码是一致的,因为此时的ASCII码也采用双字节表示。5.3 汉字机内码5.3 汉字机内码汉字机内码
用于信息处理的汉字代码
也称汉字处理码、处理码、机内码、内码
汉字内码长度可以不同,通常是双字节
对于单字节操作系统内核,汉字代码为了与ASCII码相区分,往往把内码的两字节(至少把第一个字节)的最高位(Bit 7)置为1。5.4 汉字区位码5.4 汉字区位码汉字区位码是汉字交换码的另一种表示形式。
在GB2312中,汉字交换码所占的方阵大小为94×94,若纵向定义为区号(取值范围为十进制数的0-94),横向定义为位号(取值范围为十进制数的0-94),则两个坐标明确了一个汉字的位置。区号和位号的编号都是从1开始,到94结束。
例如,在GB2312-80中,“ 码”字所在的区号为“34”,位号为“75”,故其区位码为“3475”。5.5 交换码、 区位码和内码关系5.5 交换码、 区位码和内码关系在GB2312-80中,交换码、 区位码、处理码之间存在着简单的转化关系。
设交换码为JH(J为高位,H为低位,为十六进数),区位码为QW(Q为区号,W为位号,为十进制数),处理码为CL(C为高位,L为低位,为十六进制数),则:
J=Q+32 --再转换为十六进制数
H=W+32 --再转换为十六进制数
C=J+80H
L=H+80H
5.6 代码页5.6 代码页代码页实际上就是各个可用于信息处理的字符集。
Microsoft公司在开发MS-DOS和Windows操作系统的多文种产品时,对每个具体的代码都赋予一个代号,该代号称为“代码页ID”。
例如:中文GB内码的代码页ID=936;Big5的代码页ID=9325.7 汉字编码字符集5.7 汉字编码字符集按照一组无歧义的规则而定义的汉字字汇的有序集合。其中每一个汉字与它的代码表示之间具有一一对应关系。
在信息处理技术中汉字编码字符集用于汉字信息的表示、交换、传输、处理、存储、输入及显示。
在国际标准化组织ISO的定义中,“无歧义的规则”很重要,制定这些规则的目的是为了确保编码的唯一性,避免重码。§4 常用汉字编码字符集§4 常用汉字编码字符集GB2312-80
BIG-5
内码识别问题
ISO10646/Unicode
GB13000
GBK
GB18030-2000
4.1 GB2312-804.1 GB2312-80GB2312-80:信息交换用汉字编码字符集(基本集)
双字节内码
每个字节使用低7位
从“0000,0001”---“0101,1110”
即1-0x5E(1-94)
内码的空间:94*94=8836
收录汉字6763个,符号682个
4.1 GB2312-80(续)4.1 GB2312-80(续)高位字节(1-94):94个区
低位字节(1-94):94个位
国标码与区位码
如汉字“啊”,在第16区中的第1位,则
国标码:1001(H)
区位码:1601
4.1 GB2312-80(续)4.1 GB2312-80(续)1-9区:682个符号(2、4、5、6、7、8、9区有空位164个)
包括:一般符号(间隔、标点、运算、制表)202个
序号60个
数字22个
希腊字母48个
俄文字母66个
汉语拼音26个
拉丁字母52个
日文假名169个
汉语注音37个4.1 GB2312-80(续)4.1 GB2312-80(续)10-15区:空
88-94区:空
16-87区:6763个汉字
16-55区:一级汉字3755个
55区有5个空位,从89-94
56-87区:二级汉字3008个
一级汉字按照音、笔形排列
二级汉字按照部首排列4.2 BIG-54.2 BIG-5Big-5编码是台湾地区信息业常用的汉字编码字符集,可直接用作内码。
台湾、香港、澳门等地使用
取码范围:
高位:0x81-0xfe
低位:0x40-0x70,0xa1-0xfe
4.2 BIG-5(续)4.2 BIG-5(续)Big5编码空间在一个94*157的矩阵中。Big5有94个区,每个区有157个位,因此最多可以容纳14758个码元。
Big5中收录了13494个字符(其中,13053个汉字和441个非汉字图形字符)。 4.2 Big-5-代码空间图 4.2 Big-5-代码空间图 4.2 Big-5-代码分布4.2 Big-5-代码分布4.2 Big5-问题4.2 Big5-问题Big5中2级汉字的排列都采用按笔画数由少到多排列。
Big5的设计者实际上是从JIS C 626-1978中抄了很多汉字。因为很多汉字既用于中文,又用于日文和韩文。
Big5的许多字形与其说是中国汉字,倒不如说与日本汉字更象。
另外,在Big5中出现了重复定义的字符:“兀”,编码为A461,C94A; 4.3 内码的识别问题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
4.4 ISO10646/Unicode4.4 ISO10646/Unicode背景
ISO的一些会员国于1984年 发起制定新的国际字符集编码标准。新标准由工作小组ISO/IEC JTC1/SC2/WG2负责拟订(以下简称WG2),最后定案的标准 命名为“Universal Multiple-Octet Coded Character Set” (简称UCS),其编号则订为ISO/IEC 10646。 ISO10646的字符码长度被规定为定长的4個八位元(octet)。
1991年1月,IBM、DEC、 Sun、Xerox、Apple、Microsoft、Novell等成立了Unicode技术委员会(Unicode Technical Committee),负责Unicode 字元搜集、整理、编码等工作。
由於Unicode协会持续的游说和施压,WG2终于放弃原先选择的ISO2022八位元延伸编码结构,改采Unicode的编码方式,亦即连续编码不再避开 C0和C1控制码区。1991年10月,历经几个月的协商之後,WG2和Unicode协会达成
协议
离婚协议模板下载合伙人协议 下载渠道分销协议免费下载敬业协议下载授课协议下载
,将Unicode并入ISO10646成为第0字面。
4.4 ISO10646/Unicode(续)4.4 ISO10646/Unicode(续)ISO10646编码结构
ISO10646的正规形式(可简称为UCS-4)为32个位,划分成4个八位。这4个八位,由左而右命名:
群(G-octet)、面(P-octet)、列(R-octet)和格C-octet),分别代表编码结构中的群组(group)、字面(plane)、列(row)与格(cell)。
ISO10646规定编码的Bit32必须为0,因而整个编码空间可区分为128个群组(群为00~7Fh),每一群组由256个字面所组成(面为00~FFh),每一个字面由256列组成(列为00~FFh),每一列则包含256格(格为00~FFh)。
ISO10646规定每一个字面的最后两个编码位置FFFEh和FFFFh,保留不用。
ISO10646编码空间总共256×128=32,768个字面,每个字面为256×256-2=65,534个编码位置,合 计65534×32768=2,147,418,112个编码位置。4.4 ISO10646/Unicode(续)4.4 ISO10646/Unicode(续)ISO10646的第0群组第0字面(群和面的值都为00h)称为「基本多语种文字面」(Basic Multi-lingual Plane, BMP),其编码字元与Unicode相同。
ISO10646的BMP和Unicode的编码字符。4.4 ISO10646/Unicode(续)4.4 ISO10646/Unicode(续)依其UCS-2编码序介绍如下:
(1)0000~007Fh:基本拉丁字母区。其中0000~001Fh为C0控
制码,0020h为空格(space),0021~007Eh为ASCII图形
字元,007Fh为控制码DEL。事实上,这128个字符只要
把前8个位去掉就可变成习见的8位形式的ASCII码。
(2)0080~00A0h:控制码区。其中0080~009Fh为C1控制码,
00A0h为不中断空格(no-break space)。
(3)00A1~1FFFh:拼音文字区。收容除基本拉丁字母以外的各种
拼音文字,包括欧洲各国语言、希腊文、斯拉夫语文、
希伯来文、阿拉伯文、亚美尼亚文、印度各地方言、马来文、
泰文、寮文、柬普寨文、满文、蒙文、藏文、印地安语文等。
(4)2000~28FFh:符号区。收容各种符号,包括标点符号、上下
标、钱币符号、数字、箭头、数学符号、工程符号、光学辨
识符号、带圈或带括符的文数字、表格绘制符号、地理图示、
盲用点字、装饰图形等。
4.4 ISO10646/Unicode(续)4.4 ISO10646/Unicode(续) (5)2E80~33FFh:中日韩符号区。收容康熙字典部首、中日韩辅
助部首、注音符号、日本假名、韩文音符,中日韩的符号、
标点、带圈或带括符文数字、月份,以及日本的假名组合、
单位、年号、月份、日期、时间等。
(6)3400~4DFFh:中日韩认同表意文字扩充A区,总计收容6,582
个中日韩汉字。
(7)4E00~9FFFh:中日韩认同表意文字区,总计收容20,902个中
日韩汉字。
(8)A000~A4FFh:彝族文字区,收容中国南方彝族文字和字根。
(9)AC00~D7FFh:韩文拼音组合字区,收容以韩文音符拼成的文字。
(10)D800~DFFFh:S区,专用於UTF-16。
(11)E000~F8FFh:专用字区,其内容WG2不予规定,保留供使用
者自行添加ISO10646未收容的字元。
(12)F900~FAFFh:中日韩相容表意文字区,总计收容302个中日
韩汉字。何谓相容表意文字,留待後叙。
(13)FB00~FFFDh:文字表现形式区,收容组合拉丁文字、希伯来
文、阿拉伯文、中日韩直式标点、小符号、半形符号、全形符号等。4.4 ISO10646/Unicode(续)4.4 ISO10646/Unicode(续)Unicode 可使用下列任何一种字符编码方案来编码:UTF-8、UTF-16和UTF-32。
UTF-8 是 Unicode 的一种可变长度编码形式,它透明地保留了 ASCII 字符代码值。
UTF-16 是 Unicode 的一种 16 位编码形式。在 UTF-16 中,多达 65,535 个字符被编码为单个 16 位值。映射在 65,535 到 1,114,111 的字符被编码为成对的 16 位值(代理)。
UTF-32 是 Unicode 的一种固定长度的 21 位编码形式,通常用在 32 位容器或数据类型中 4.5 GB130004.5 GB13000GB13000.1-1993 信息技术通用多八位编码字符集UCS)
和ISO10646一致
4.6 GBK4.6 GBK2字节汉字编码
在内码上兼容GB2312-80
在字汇上兼容GB13000/ISO10646
是GB2312向GB13000过渡的中间代码
收录21886个汉字和符号
从8140H-FEFEH,除了xx7F一条线
4.6 GBK(续)4.6 GBK(续)4.6 GBK(续)4.6 GBK(续)4.7 GB18030-20004.7 GB18030-2000信息交换用汉字编码字符集基本集的扩充
2000-3-17发布
2001年9月作为国家标准强制实施
2000年ISO发布了ISO 10646-1:2000(Unicode 同步定义为Unicode 3.0),主要是增加了称为中日韩统一汉字Extension A的6,582个字符。
GB18030-2000编码标准就在原来的 GB2312-1980 编码标准和 GBK 编码标准的基础上进行扩充,增加了四字节(32位)部分的编码。
4.7 GB18030-2000(续)4.7 GB18030-2000(续)整合GBK的汉字后到达了27484个汉字,总编码空间超过150万个码位
GB18030标准采用单字节、双字节和四字节三种方式对字符编码
四字节的编码顺序为: 0x81308130至0x81308139;0x81308230至0x81308239;0x8130FE30至0x8130FE39;0x81318130至0x81318139;0x8131FE30至0x8131FE39;0x82308130至0x82308139;0xFE308130至0xFE308139;0xFE39FE30至0xFE39FE39。 4.7 GB18030-码位分布4.7 GB18030-码位分布§5 Internet上的汉字交换码§5 Internet上的汉字交换码Uuencode
Xxencode
Base64
Quoted-Printable
HZ
UTF-7
UTF-8
4.1 Uuencode 4.1 Uuencode Uuencode 是将二进制文件以文本文件方式进行编码表示,以利于基于文本传输环境中进行二进制文件的传输/交换的编 码方法之一, 在邮件系统/二进制新闻组中使用频率比较高,常用于 Attach 二进制文件。 4.1 Uuencode (续)4.1 Uuencode (续)特征:
每一行开头用“M”标志
第一行为:begin xxx(数字) 文件名
最后一行为:end4.1 Uuencode (续)4.1 Uuencode (续)例子:
begin 644 test.txt
M#0H)("`@*B"S_<'+O,?2Y,JRP[2VO+*[M/C7WZ.LL_W!R]?CO*/*LL.TMKRR
MN\'TS\(J#0H)("`@*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ
`
end 4.1 Uuencode (续)4.1 Uuencode (续)转换方法:
把它单独存成一个文件:test.uue
然后用Winzip打开解压
得到Test.txt文件4.1 Uuencode (续)4.1 Uuencode (续)编码算法:
编码时它将3个字符顺序放入一个24 位的缓冲区,缺字符的地方补零,然后将缓冲区截断成为4个部分,高位在先,每个部分 6 位,用下面的64个字符重新表示: `!”#$%&‘()*+,-./0123456789:;<=>?@
ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_
4.1 Uuencode (续)4.1 Uuencode (续)编码时,每次读取源文件的45个字符,不足45个的用“NULL”补足为3的整数倍(如:23补为24),然后输入目标文件一个ASCII为:“32+实际读取的字符数”的字符作为每一行的开始。读取的字符编码后输入目标文件,再输入一个“换行符”。如果源文件被编码完了,那么输入“`(ASCII为96)”和一个“换行符”表示编码结束。 4.2 Xxencode 4.2 Xxencode 和Uuencode相识
编码使用的字符是: +-0123456789
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
一般以‘h’为一行的首字符4.3 Base 64 4.3 Base 64 Base64属于MIME(多部分( multi-part)、多媒体电子邮件和 WWW 超文本的一种编码标准,用于传送诸如图形、声音和传真等非文本数 据)。MIME定义在RFC1341中。
Base64是现今在互联网上应用最多的一种编码,几乎所有的电子邮件软件头把它作为默认的二进制编码,它已经成了现今电子邮件编码的代名词。 4.4 Base 64(续)4.4 Base 64(续)例子
MIME-Version: 1.0
Content-Type: text/plain;
charset="gb2312"
Content-Transfer-Encoding: base64
X-MSMail-Priority: Normal
X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2615.200
ztK5+rK7vfbKx8rAvefJz9futPO1xMuutb7J+rL6ufq6zc/7t9G5+qOsuPzKx7W+1/fA+sq31+7T
xr7DoaLLrrW+0sW0q9fK1LTX7rfhuLu1xLn6vNLWrtK7oaO/vLnF1qTD96Os1OfU2jcwMDC24MTq
x7CjrM7Sufq+zb+qyrzW1tayy661vqGjDQo=4.4 Base 64(续)4.4 Base 64(续)阅读方式
把它单独存成一个文件,可以取名为:XXX.eml 双击可以用OutLook打开
4.4 Base 64(续)4.4 Base 64(续)算法:
将字符流顺序放入一个 24 位的缓冲区,缺字符的地方补零。然后将缓冲区截断成为 4 个部分,高位在先,每个部分 6 位,用下面的64个字符重新表示: ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz0123456789+/”。 如果输入只有一个或两个字节,那么输出将用等号“=”补足。这可以隔断附加的信息造成编码的混乱。它每行一般为76个字符。 4.5 Quoted-Printable 4.5 Quoted-Printable Quoted-Printable简称QP, 一般用在mail系统中。它通常用于少量文本方式的8位字符的编码,例如Foxmail就用它做对主题和信体的编码。这种编码的应该是很好辨认的:它有大量的“=”。
QP的算法是最简单的,也是编码效率最低的 (它的编码率是1:3),是专门为了处理8位字符制定的。它的算法是:读一个字符,如果ASCII码大于127,即字符的第8位是1的话,进行编码,否则忽略(有时也对7位字符编码)。 4.5 Quoted-Printable(续)4.5 Quoted-Printable(续)例子:
MIME-Version: 1.0
Content-Type: text/plain;
charset="gb2312"
Content-Transfer-Encoding: quoted-printable
X-Priority: 3
X-MSMail-Priority: Normal
X-Unsent: 1
X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2615.200
=C8=D5=BE=ADBP=C9=E7=B1=A8=B5=C0=A1=BF=C3=C0=B9=FA=D4=DA=CF=DF=CA=B1=B4=FA=
=BB=AA=C4=C9=B5=C4=C3=C0=B9=FA=D4=DA=CF=DF(AOL)=B9=AB=CB=BE=D3=DA=B5=B1=B5=
=D8=CA=B1=BC=E49=D4=C212=C8=D5=B9=AB=B2=BC=C1=CB=D0=C2=B5=C4=B6=AD=CA=C2=C8=
=CE=C3=FC=A1=A3AOL=BD=AB=B7=CF=B3=FDCOO(=CA=D7=CF=AF=D4=CB=D3=AA=B9=D9)=BC=
=B0=D7=DC=BE=AD=C0=ED=D6=B0=CE=F1=A3=AC=BD=A8=C1=A2=D3=C9=B8=C3=B9=AB=CB=BE=
=B5=C4=B6=AD=CA=C2=B3=A4=BC=E6=CA=D7=CF=AF=D0=D0=D5=FE=B9=D9(CEO)Jon =
Miller=B8=FC=D6=B1=BD=D3=BC=E0=B9=DC=D4=CB=D3=AAInteractive =
Marketing=BC=AF=CD=C5=BC=B0AOL=BF=ED=B4=F8=B7=FE=CE=F1=BC=AF=CD=C5=B5=C8=D6=
=F7=D2=AA=D2=B5=CE=F1=B5=C4=BB=FA=D6=C6=A1=A3
=204.6 HZ码 4.6 HZ码 HZ码是为了使只能传送7bit信息的邮件服务器或网关能传送8bit信息而定义的编码,也是中文常用编码的一种。它和Quoted-Printable码都只能对文本进行编码,即编码时忽略控制字符。
这种编码的也是很好辨认的:有许多“~{”和“~}”,总是成对出现。 4.6 HZ码(续)4.6 HZ码(续)算法
读一个字符,如果是8位字符,就把它的最高位清零。把连续的第8位字符清零后的输出用“~{”和“~}”括起来。解码时:把是用“~{”和“~}”括起来的部分每个字符的第8位置“1”即可。 4.6 HZ码(续)4.6 HZ码(续)例子:
MIME-Version: 1.0
Content-Type: text/plain;
charset="hz-gb-2312"
Content-Transfer-Encoding: quoted-printable
X-Priority: 3
X-MSMail-Priority: Normal
X-Unsent: 1
X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2615.200
~{!!!!AmMb#,SISZ~}2002~{Dj~}7~{TB~}AOL~{1;FX9b4fTZWv
R23PHO#:!0TZ;a1=
mJ>#,!0IfOS5D;a-?*JDZ2?5w2i#,=3Dq:s;9=3D+6TFdK|=3D=
;RW=3DxPP5w2i!#6HD)G0=3DaJx5w2i!1!#~}
4.7 UTF-74.7 UTF-7A Mail-Safe Transformation format of Unicode(RFC 1642)
用7位ASCII码来对Unicode进行转换的编码
编码算法:
ASCII码不编码
其它用BASE64编码4.7 UTF-7(续)4.7 UTF-7(续)From:
Subject:
Date: Tue, 7 Sep 2004 21:36:07 +0800
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-7"
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Unsent: 1
X-MimeOLE:
+VBtODYhMUW5ZN3M2/wyOR4qwdVlRbk4tbTL/Hw-
+f46JgXcHUW5bnE/u/wxsm1Q+TlhRbmhCgh8wAg-
+TuRshTABblhRbnEhbOL/DE9/bF9sNFFuW4ltQTAC-
+ZxtZK1QbUW5nKk+G/wxUOVPDXe5RboqwYB3/Hw-
+mdWY25+NUW5TF1+B/wyQhVQ+kFNRbm0eXq0wAg-
+hZyDVGfPUW6FWX2i/wyEwGpIUW6GLWXMMAI-
+ZxttlJZ9UW5pdW1m/wxqa1knbF9RbmPal0gwAg-
+Y9qXSFFuZyppdf8MWXNbC1qbUW5wuk9ZWSpgb/8B-
+amttQW2VUW5vem5y/wyWsWAdVBtRbpZrUHQwAg-
+aEJqwlFuhi1nu/8MZbJRsFFuek2W6jAC-+kceFnINUUW5sNE4t/wxkNIKZhMlRbmcoZyswAg-
+X8NODVQMUW5aklLe/wxgaU4NdRpRbo8VfVUwAg-
+d/NwKFFubfpt+v8MmNufjVFuf+l/6TAC-
+TqRODV/gUW5gKJV3/wxnH04NT+FRblRKT1lO5U4NlZMwAg-
+Zx2aAZoWUW5sX3aL/wxZFV8te8BRblMXbhowAg-
+nOVrIVFuXEtOCv8MbDRUaFFuWAJOCzAC-
+Y1BPWXOmUW5sX04t/wyQek9ZT2lRbm+nbWYwAg-
+kceCs20yUW5nXILl/wxcB07lkHpRbk4LWXMwAg-
+ZkJODVPvUW5RjV+X/wyASpANkFlRblu5ggcwAg-
4.8 UTF-84.8 UTF-8A Transformation Format of Unicode and ISO 10646(RFC 2044)
UTF-8 使用变长编码。
从 0 到 0x7f(127)的字符把自身编码成单字节,而将值更大的字符编码成 2 到 6 个字节。4.8 UTF-8(续)4.8 UTF-8(续)UTF-8 编码
0x00000000 - 0x0000007F: 0xxxxxxx
0x00000080 - 0x000007FF: 110xxxxx 10xxxxxx
0x00000800 - 0x0000FFFF: 1110xxxx 10xxxxxx 10xxxxxx
0x00010000 - 0x001FFFFF: 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
0x00200000 - 0x03FFFFFF: 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
0x04000000 - 0x7FFFFFFF: 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
UTF-8 编码示例
Unicode 字符版权标记字符 0xA9 = 1010 1001 用 UTF-8 编码如下所示:
11000010 10101001 = 0xC2 0xA9
“不等于”符号字符 0x2260 = 0010 00110 0110 0000 编码如下所示:
11100010 10001001 10100000 = 0xE2 0x89 0xA0 谢谢!谢谢!