’科技经er'q场。,技术平台
初探U ni code编码
席春梅
(青海师范大学物理系。青海西宁810008)
摘要:随着信息技术的发展,文字的国际性被进一步强调了,所以使用一个统一的国际编码迫在眉睫,U nlcode编码便应运而生,它是一种重要的交互和显示的通用字符编码标准。本文主要介绍U ni code字符编码、U ni cod e编码形式及U ni code 与U T F一8之f.-I的编码转换原理。
关键词:U ni code;编码形式;U TF;编码转换
1U ni code产生的背景
1946年2月14日,在美国宾夕法尼亚大学的莫尔电机学院,世界上的第一台计算机诞生了。在它诞生之初,编码问题并不是很重要。因为当时计算机基本上是在英语语系的闰家内使用,所以编码只要考虑英语二十六个字母就行了。因此美国制定了使用七位编码A S C I I‘码(0—127).这很快就成为了世界性的标准,也是现在所有字符集的基础,通常被称为基本拉丁字符集。事实上A S C I I码仅仅定义了用于书写美国英语的全部字符,它甚至缺少一些写英语所必须的符号,如版权符号等。
随着计算机在全球的发展以及在各个行业的普及,编码的问题已日益重要,原有的A SC I I码已经不够用了,于是人们通过把有符号数一一变为无符号数,使得编码范围从0-127变为0-255,把附加的字符指定给128以上来扩展A SC I I码。为此.I SO组织做r很多工作,它定义了很多基于A SC I I的字符集标准(IS08859一l—IS08859—15),这些字符集都是A SC I I码的超集,扩充部分包含一门或几门可以合并的语言中的字符,而这也成为了撰写某些多语言文档的瓶颈。
I nt em et的出现和发展,使得越来越多的计算机行业意识到全球市场的重要性,并且努力使自己的产品围际化,使之能很容易的处理各种语言的信息。如汉语、阿拉伯语等。因此人们需要一种比以前更灵活,更有效的伞球统一的编码系统。在这种情况下,U ni code联盟于1988年开始着手开发一个统一的包含世界上大部分语种的国际通用字符集一U ni code。U ni code.or g官方对U ni code的定义是:U ni code pr ovi des a un i qu e nu m ber f or ever y charact er。可见,U ni code所做的是为每个字符定义了一个相应的数字表示。
2U ni code字符编码概述
U ni code(统一码、万国码、单一码)是一种在计算机}使用的字符编码。它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。也就是说,U ni code能够用于世界上各种语言的书面形式以及附加符号的表示、传输、交换、处理、存储、输入及显示,给每一个字符一个唯一特定数值。
U ni code标准已经被很多公司采用,例如H P,IBM,M i cr os of t, Sun等.而且U ni code是实现I SO/I E C10646的正规方式。许多操作系统,所有最新的浏览器和许多其他产品都支持它。U ni code 标准的出现和支持它的工具的存在,是近来全球软件技术最重要的发展趋势。到了现在,U ni code标准已经不单是一个编码标准,还是记录人类语言文字资料的一个巨大的数据库,同时从事人类文化遗产的发掘和保护工作。
3U ni code编码形式
U ni eode标准定义的字符可采用不同的编码形式,按其基本长度所用位分为U TF一8/16/32。U TF表示U n i code(or U C S)T r a nsf or m at i on For m at,是U ni code代码点(code poi nt)的实际表示方式,它也可以认为是一种特殊的外鄙数据编码,但能够与U ni code代码点做一一对应。现分别介绍这几种编码形式。
3.1U TF一8编码
U TF一8是基于字节的编码,压缩的U ni code编码方式:使用U T F-8编码的意义在于:与原有的基于A SC I I码的应用程序或运行库形式上兼容。它也因此成为了最重要最主流的uni code 变种。
U T F-8编码方案的特点如下:
unicode编码转换二进制
①从0到7F之间的码位用相同数值的单字节表示它的U TF一8值。
②凡是码位大于U+O O T F的字符用一个字节序列表示。其中每一个字节最高位都是l;字节序列中的第一个字节的值总在O xC0-O xF D之间,并指明本字符编码有多少个字节,随后的字节总在O x90-O xB F之间。
③U C S体系中的所有字符都可被编码,可以编人所有可能的231个U C S代码。
④u1'F一8字符序列理论最多达到6个字节,对U C S一203M P 平面)字符最多能达到3个字节。
⑤Bi B E ndi an ucS-4字节串的排列顺序是预定的。
⑥字节O xFE和O xFF在U T F一8编码中从未用到。
3.2U TF一16编码
U TF—16是U ni code标准默认的编码方式。它把一个字符码位映射到一个或两个16位整数。它长度相对同定,只要不处理大于\U20(X)00范围的字符,每个U ni code代码点使用16位即2字节表尔,超出部分使用两个U TF—16即4字节表示。按照高低位字节顺序,又分为U TF—16B E,U,rF—16LE(BE指Bi sEndi an,而LE指Li t t l e Endi an)。它采取的方法如下:
①在B M P内的字符(码位值从O到FFFF之间的字符)以相同的数值作为uT F—16编码;
馐)00组01一10平面内的字符({玛位值从10000到I O FFFF 之间),使用Sur r ogat e.编码方式,以两个16位数值作为它的U T F—16编码:第一个16位取值从D800到D B FF之间:第二个16位取值从D C00到D FFF之间。在B M P中O xD S00一O xD FFF之间的区域专门空出作为U C S一2编码的扩展,因此U TF一16又称为U C S一2E。但是因U1下一16的西文字符为双字节,与现有大多使用单字节A SC I I码的软件不兼容,很少用。
3.3U TF一32编码
u盯一32长度始终固定,每个U ni code代码点使用32位即4字节表示。在定位问题上,最简单的就是u,I'F一32,它根本不需要进行字符定位。按照高低位字节顺序,又分为U耵乙32BE/U T F一32L E。
4U ni code与U TF一8之间的编码转换原理
作者简介:席春梅(1985一),女,青海省民和县人。青海师范大学物理系计算机应用专业2007级研究生,主要研究向为电子信息技术。
2008年第9期O
17

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。