网站运营
位置:首页>> 网站运营>> 常用字符集编码的概要特性(2)

常用字符集编码的概要特性(2)

作者:charset 来源:charset.cn 发布时间:2007-10-12 20:46:00 

标签:字符,编码,Unicode,BIG5,UTF-8,GBK,GB2312

常用字符集编码的概要特性(二)

BIG5

Big5是双字节编码,高字节编码范围是0x81-0xFE,低字节编码范围是0x40-0x7E和0xA1-0xFE。和GBK相比,少了低字节是0x80-0xA0的组合。0x8140-0xA0FE是保留区域,用于用户造字区。

Big5收录的汉字只包括繁体汉字,不包括简体汉字,一些生僻的汉字也没有收录。GBK收录的日文假名字符、俄文字符Big5也没有收录。因为Big5当中收录的字符有限,因此有很多在Big5基础上扩展的编码,如倚天中文系统。Windows系统上使用的代码页CP950也可以理解为是对Big5的扩展,在Big5的基础上增加了7个汉字和一些符号。Big5编码对应的字符集是GBK字符集的子集,也就是说Big5收录的字符是GBK收录字符的一部分,但相同字符的编码不同。

因为Big5也占用了ASCII的编码空间(低字节所使用的0x40-0x7E),所以Big5编码在一些环境下存在和GBK编码相同的问题,即低字节范围为0x40-0x7E的字符有可能会被误处理,尤其是低字节是0x5C("/")和0x7C("|")的字符。可以参考GBK一节相应说明。

尽管有些区别,大多数情况下可以把CP950当作Big5的别名。

ISO-8859-1

ISO-8859-1编码是单字节编码,向下兼容ASCII,其编码范围是0x00-0xFF,0x00-0x7F之间完全和ASCII一致,0x80-0x9F之间是控制字符,0xA0-0xFF之间是文字符号。

ISO-8859-1收录的字符除ASCII收录的字符外,还包括西欧语言、希腊语、泰语、阿拉伯语、希伯来语对应的文字符号。欧元符号出现的比较晚,没有被收录在ISO-8859-1当中。

因为ISO-8859-1编码范围使用了单字节内的所有空间,在支持ISO-8859-1的系统中传输和存储其他任何编码的字节流都不会被抛弃。换言之,把其他任何编码的字节流当作ISO-8859-1编码看待都没有问题。这是个很重要的特性,MySQL数据库默认编码是Latin1就是利用了这个特性。ASCII编码是一个7位的容器,ISO-8859-1编码是一个8位的容器。

Latin1是ISO-8859-1的别名,有些环境下写作Latin-1。

UCS-2和UTF-16

Unicode组织和ISO组织都试图定义一个超大字符集,目的是要涵盖所有语言使用的字符以及其他学科使用的一些特殊符号,这个字符集就是通用字符集(UCS,Universal Character Set)。这两个组织经过协调,虽然在各自发展,但定义的字符位置是完全一致的。ISO相应的标准是ISO 10646。Unicode和ISO 10646都在不断的发展过程中,所以会有不同的版本号来标明不同的发展阶段,每个Unicode版本号都能找到相对应的ISO 10646版本号。

ISO 10646标准定义了一个31位的字符集。前两个字节的位置(0x0000-0xFFFD)被称为基本多语言面(Basic Multilingual Plane, BMP) ,超出两个字节的范围称作辅助语言面。BMP基本包括了所有语言中绝大多数字符,所以只要支持BMP就可以支持绝大多数场合下的应用。Unicode 3.0对应的字符集在BMP范围内。

UCS字符集为每个字符分配了一个位置,通常用“U”再加上某个字符在UCS中位置的16进制数作为这个字符的UCS表示,例如“U+0041”表示字符“A”。UCS字符U+0000到U+00FF与ISO-8859-1完全一致。

UCS-2、UTF-16是UCS字符集(或者说是Unicode字符集)实际应用中的具体编码方式。UCS-2是两个字节的等宽编码,因为只是使用了两个字节的编码空间,所以只能对BMP中的字符做编码。UTF-16是变长编码,用两个字节对BMP内的字符编码,用4个字节对超出BMP范围的辅助平面内的字符作编码。

UCS-2不同于GBK和Big5,它是真正的等宽编码,每个字符都使用两个字节,这个特性在字符串截断和字符数计算时非常方便。

UTF-16是UCS-2的超集,UTF-16编码的两字节编码方式完全和UCS-2相同,也就是说在BMP的框架内UCS-2完全等同与UTF-16。实际情况当中常常把UCS-16当作UCS-2的别名

UCS-2和UTF-16在存储和传输时会使用两种不同的字节序,分别是big endian和little endian(大尾和小尾)。例如“啊”(U+554A)用big endian表示就是0x554A,用little endian表示就是0x4A55。UCS-2和UTF-16默认的字节序是big endian方式。在传输过程中为了说明字节序需要在字节流前加上BOM(Byte order Mark),0xFEFF表示是big endian,0xFFFE表示是little endian。UCS-2BE、UCS-2LE是实际应用中使用的编码名称,对应着big endian和little endian,UTF-16BE、UTF-16LE也是如此。因为默认是BE字节序,所以可以把UCS-2当做是UCS-2BE的别名。

在UCS编码中有一个叫做“ZERO WIDTH NO-BREAK SPACE”的字符,它的编码是U+FEFF,是个没有实际意义的字符。UCS规范建议我们在传输字节流前,先传输字符“ZERO WIDTH NO-BREAK SPACE”,如果传输的ZERO WIDTH NO-BREAK SPACE是0xFEFF就说明是big endian,反之就是little endian。

UCS-2和UTF-16也可以理解为和ASCII以及ISO-8859-1兼容,在ASCII编码或者ISO-8859-1编码的每个字节前加上0x00,就得到相应字符的UCS-2编码。

UCS-2和UTF-16中会使用0x00作为某个字符编码的一部分,某些系统会把0x00当作字符串结束的标志,在处理UCS-2或UTF-16编码时会出现问题。

0
投稿

猜你喜欢

  • 最近探讨flash在客户端的得失,与几位朋友交流时,突然想起,前段时间阿里集团旗下几个公司相继做出在业内反响比较大的几个招聘网站,不约而同都
  • Dedecms还是比较不错的,当然,除了论坛的技术回复速度!!今天分享一个比较实用的关于循环调用子栏目及其内容列表的小代码,其实查看标签手册
  • 升级IE8浏览器后,无法上传图片,总是提示“无效图片”,重置IE浏览器无效,使用IE7浏览器时一起正常。那么这个情况应该怎么办呢?请用户打开
  • 在线列表图标功能是Discuz! 7.1中用于区分在线成员列表中会员的身份。当您打开在首页或分版块显示在线用户功能时,首页或分版块的在线会员
  • 计算网格为那些强大的新型探索工具提供了基础设施,这些基础设施包括桌面计算、智能设备、协作和分布式计算。Globus 项目(Globus Pr
  • 1、服务器必须支持URL重写。2、后台开启伪静态。3、栏目设置使用动态。4。添加文档时选择使用动态浏览。5。需要修改php文件include
  • 前面说了启用Gzip 压缩减少带宽消耗以加速网站,今天说Windows2003服务器安装及设置教程——IIS优化第二篇:使用eAcceler
  • 精神是灵魂。国家精神是国家之“魂”,民族精神是民族之“魂”,站长精神是站长之“魂”!    何谓站长精神?&n
  • 前言世界上最有趣的职业是网站设计师,有人为自己的作品喊价5000美金,有人129美金就行,而很多人根本看不出这两者的差别,我见过一个加拿大
  • dedecms默认在列表是无法调用tag标签的,经过各位版主们的帮助,现给大家提供出种方法方法1:在列表需要的位置加入下列代码[field:
  • 一些Godaddy用户不明白什么是ron Job?现在就来做下解释,一定要认真听哦~Cron是一个让你计划任务的标准的Linux特征,叫做&
  • 同一片蓝天下飘过同一朵云彩同样经历了的风雨同处在网络爆发时代,却有不同的人生有人说性格决定命运,也有人说不同的环境造就不同的人为什么自己还是
  • 通常地,大多数Web站点的设计目标都是:以最易接受的方式,为访问者提供即时的信息访问。在过去的几年中,越来越多的黑客、病毒和蠕虫带来的安全问
  • SupeSite 7.0是康盛创想(Comsenz)公司于2009年3月推出的一款社区CMS产品,作为Comsenz旗下的社区产品SupeS
  • 首先我们都要承原创是件非常痛苦的事情,于是出现了转载和抄袭,这也造就了很多东东,譬如数以千万的垃圾网站、新年祝福短信、山寨手机,还有花儿乐队
  • 用户使用Godaddy的windows的主机,打开网站时必须在域名后添加index.aspx才可以打开。index.aspx不在默认页面里面
  • 我们与谷歌机器人的上一次约会棒极了,但网站们还对响应代码感到比较困惑,不知道自己返回的响应代码是否正确。我们的服务器返回了301永久重定向代
  • 现在,SEO正在成为类似哈里·波特冒险式的故事,它充满理性、激情、神秘,还有点幽默。尽管传统的巫婆术士现在已被网络精曲、网络小插件所取代,被
  • 对于网络游戏,本人历来是不怎么喜欢,只因下载的客户端庞大。98年至今本人还一直保留着一款红色警戒游戏,既可以单机,也可以偶尔联网对垒一下。随
  • 在我们建站起初对于站点无论我们做的是什么样的站点,对自己的站点定位一定要很清晰,现在像很多朋友站点建立做的比较杂,甚至很多自己自己都不知道自
手机版 网站运营 asp之家 www.aspxhome.com