关于编码unicode

Unicode编码

   ASCII是目前来说使用比较广泛的字符,由一个字节组成的字符集合,可以表示所有拉丁字符,分为7位和8位两种编码,7位的高位用于奇偶校验,可以表示128个字符。但是由于ASCII码只能表示128个字符,不能满足世界其他文字的表示,于是unicode的产生了。

   标准的unicode是两个字节的,可以表示65536个字符。但是后来由于65536个字符也远远不够用,所以就增添了一部分字符。目前主要有以下几种unicode的编码:utf-8,ucs-2,utf15,utf-32。

 

UTF-8

UTF-8是可变的字符集合,其中一些字符用1个字节,一些字符用2个字节,一些字符用3个字节,一些字符用4个字节。值在0x0080以下的字符以用1个字节表示,主要适合美国使用的字符。0x0080和0x07FF之间的字符转换为2个字节,这对欧洲和中东地区的语言非常适用。0x0800以上的字符都转换为3个字节,适合中国及东亚的语言,实际上,中国汉字9万多个,这种编码只支持了部分的常用汉字。4字节则表示一些附加字符,其中有部分的汉字。

Unix平台中普遍支持UTF-8字符集,HTML和大多数浏览器也支持UTF-8,而window和java则支持UCS-2。

优点:在对欧洲字符的支持上,存储空间较小,也比较高效。

 

 

UCS-2

UCS-2是固定长度为16位的unicode字符集。每个字符都是2个字节,UCS-2只支持unicode3.0,所以不支持附加字符。

UCS-2的优点:

对于亚洲字符的存储空间需求比UTF-8少,因为每个字符都是2个字节。

处理字符的速度比UTF-8更快,因为是固定长度编码的。

对于windows和java的支持更好。

 

 

UTF-16

UTF-16也是一种16位编码的字符集。实际上,UTF-16就是UCS-2加上附加字符的支持,也就是符合unicode4.0规范的UCS-2。所以UTF-16是UCS-2的严格超集。

UTF-16中的字符,要么是2个字节,要么是4个字节表示的。UTF-16主要在windows2000以上版本使用。

UTF-16相对UTF-8的优点,和UCS-2是一致的。

 

 

UTF-32

UTF-32将每个字符都编码为4个字节。任何语言都采用4个字节,所以不用考虑处理字节数不定的字符,这种编码方式就非常有用。但是这种编码太过占内存,也不怎么高效。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值