三九宝宝网宝宝百科宝宝知识

如何判断UTF8和UNICODE和GBK编码

02月02日 编辑 39baobao.com

[怎样判断大米的好坏陈旧度]1)看硬度:大米粒的硬度主要是由蛋白质含量决定的,米的硬度越大,蛋白质含量和透明度越高。新米要比陈米硬度大,选购时用牙咬一下就能感觉出来米硬度的强弱。 2)看腹白:大米腹部不透...+阅读

UTF8并不算是一种电脑编码,而是一种储存和传送的格式,如前所述,每个Unicode/UCS字符都以 2或4个bytes来储存,看看以下的比较: 以"I am Chinese"为例 用ANSI储存:12 Bytes 用Unicode/UCS2储存:24 Bytes + 2 Bytes(header) 用UCS4储存:48 Bytes + 4 Bytes(header) 以"我是中国人"为例 用ANSI储存:10 Bytes 用Unicode/UCS2储存:10 Bytes + 2 Bytes(header) 用UCS4储存:20 Bytes + 4 Bytes(header) 由此可见直接以Unicode/UCS的原始形式来储存是一种极大的浪费,而且也不利于互联网的传输(中文稍为合算一点^_^)。 有见及此,Unicode/UCS的压缩形式--UTF8出现了,套用官方网站的首句话『UTF-8 stands for Unicode Transformation Format-8. It is an octet (8-bit) lossless encoding of Unicode characters.』,由于UTF也适用于编码UCS,故亦可称为『UCS transformation formats (UTF)』 UTF8是以8bits即1Bytes为编码的最基本单位,当然也可以有基于16bits和32bits的形式,分别称为UTF16和UTF32,但目前用得不多,而UTF8则被广泛应用在文件储存和网络传输中。 编码原理 先看这个模板: UCS-4 range (hex.) UTF-8 octet sequence (binary) 0000 0000-0000 007F 0xxxxxxx 0000 0080-0000 07FF 110xxxxx 10xxxxxx 0000 0800-0000 FFFF 1110xxxx 10xxxxxx 10xxxxxx 0001 0000-001F FFFF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx 0020 0000-03FF FFFF 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 0400 0000-7FFF FFFF 1111110x 10xxxxxx ... 10xxxxxx 编码步骤: 1) 首先确定需要多少个8bits(octets) 2) 按照上述模板填充每个octets的高位bits 3) 把字符的bits填充至x中,字符顺序:低位→高位,UTF8顺序:最后一个octet的最末位x→第一个octet最高位x 4) 解码的原理一样。 实例:(留意每个bit的颜色,粗体字为模板内容) UCS-4 UTF-8 HEX BIN Bytes BIN HEX Bytes 0000 000A 00001010 4 00001010 0A 1 0000 0099 10011001 4 11000010 10011001 C2 99 2 0000 8D99 10001101 10011001 4 11101000 10110110 10011001 E8 B6 99 3 不知大家看懂了没有,其实不懂也无所谓,反正又不用自己算,程式可以完全代劳。 以UTF8格式储存的文件档首标识为EF BB BF。 效率 从上述编码原理中得出的结论是: 1.每个英文字母、数字所占的空间为1 Byte; 2.泛欧语系、斯拉夫语字母占2 Bytes; 3.汉字占3 Bytes。 由此可见UTF8对英文来说是个非常诱人的方案,但对中文来说则不太合算,无论用ANSI还是 Unicode/UCS2来编码都只用2 Bytes,但用UTF8则需要3 Bytes。 以下是一些统计资料,显示用UTF8来储存文件每个字符所需的平均字节: 1.拉丁语系平均用1.1 Bytes; 2.希腊文、俄文、阿拉伯文和希伯莱文平均用1.7 Bytes; 3.其他大部份文字如中文、日文、韩文、Hindi(北印度语)用约3 Bytes; 4.用超过4 Bytes的都是些非常少用的文字符号。 Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。1990年开始研发,1994年正式公布。随着计算机工作能力的增强,Unicode也在面世以来的十多年里得到普及。 Unicode 是基于通用字符集(Universal Character Set)的标准来发展,并且同时也以书本的形式(The Unicode Standard,目前第五版由Addison-Wesley Professional出版,ISBN-10: 0321480910)对外发表。 2006年6月的最新版本的 Unicode 是 2005年3月31日推出的Unicode 4.1.0 。另外,5.0 Beta已于2005年12月12日推出,以供各会员评价。[编辑本段]Unicode 的编码和实现 大概来说,Unicode 编码系统可分为编码方式和实现方式两个层次。 1.编码方式 Unicode是国际组织制定的可以容纳世界上所有文字和符号的字符编码方案。Unicode用数字0-0x10FFFF来映射这些字符,最多可以容纳1114112个字符,或者说有1114112个码位。码位就是可以分配给字符的数字。UTF-

8、UTF-

16、UTF-32都是将数字转换到程序数据的编码方案。 Unicode字符集可以简写为UCS(Unicode Character Set)。早期的Unicode标准有UCS-

2、UCS-4的说法。UCS-2用两个字节编码,UCS-4用4个字节编码。UCS-4根据最高位为0的最高字节分成2^7=128个group。每个group再根据次高字节分为256个平面(plane)。每个平面根据第3个字节分为256行 (row),每行有256个码位(cell)。group 0的平面0被称作BMP(Basic Multilingual Plane)。将UCS-4的BMP去掉前面的两个零字节就得到了UCS-2。 每个平面有2^16=65536个码位。Unicode计划使用了17个平面,一共有17*65536=1114112个码位。在Unicode 5.0.0版本中,已定义的码位只有238605个,分布在平面0、平面

1、平面

2、平面

14、平面

15、平面16。其中平面15和平面16上只是定义了两个各占65534个码位的专用区(Private Use Area),分别是0xF0000-0xFFFFD和0x100000-0x10FFFD。所谓专用区,就是保留给大家放自定义字符的区域,可以简写为PUA。 平面0也有一个专用区:0xE000-0xF8FF,有6400个...

以下为关联文档:

2013科学大众金钥匙比赛试题判断对错(二)判断题(正确的打“ √”,错的打“*”。每题1分,共15分) 1.( * )食物落地后只要在3秒钟内捡起,就可以安全使用,因为这时食物尚未受到细菌污染。 2.( * )吃辣椒有辛辣、灼烧的感觉,主...

怎样判断一个户型的好坏呢好户型一般标准 房子的户型好,晴朗的天气,白天所有房间不需要开灯,光照也充足;往房间里摆放基本尺寸家具,不妨碍人走动;不借助通风设备能自然通风。 通常有5条基本标准: 1、整体形...

商品编码的含义和部分商品编码商品编码是指用一组阿拉伯数字标识商品的过程,这组数字称为代码。 商品编码与商品条码是两个不同的概念。商品代码是代表商品的数字信息,而商品条码是表示这一信息的符号。在...

举例商品编码的种类及方法商品代码的结构 1、标准版商品条码的代码结构 对于我国商品条码的代码而言,由690、69 1、692三个前缀码构成的EAN-13码有如下两种结构: 结构种类 厂商识别代码 商品项目代码...

商品编码是什么构成的对于我国商品条码的代码而言,由690、69 1、692三个前缀码构成的EAN-13码有如下两种结构: 结构种类 厂商识别代码 商品项目代码 校验码 结构一 X13X12X11X10X9X8X7 X6X5X4X3X2...

母猫是否发情的判断方法饲养猫咪的过程中,猫咪就和人类一样,也要经历每一个阶段。发情就是一个比较重要的阶段。人家常说,母猫发情的时候,最累和操心的还是主人。所以很多时候主人在饲养宠物猫咪的时候...

关于国际邮政编码邮政编码 地名代码 国家名称 邮政编码 地名代码 国家名称 999002 XJP 新加坡 999003 TG 泰国 999004 MLX 马来西亚 999005 FLB 菲律宾 999006 YDN 印度尼西亚 999007 HG 南...

utf8繁体中文编码表范围是多少UTF-8是Unicode的一种实现方式,也就是它的字节结构有特殊要求,所以我们说一个汉字的范围是0X4E00到0x9FA5,是指unicode值,至于放在utf-8的编码里去就是由三个字节来组织,所以可以...

请教高手这个:F70B9F03F535C019是什么编码转换成汉字后是问题:F70B9F03F535C019,是什么编码,转换成汉字后是什么?回答:你提的问题的说法是不正确的,这是你对计算机的各种编码完全不理解的原因。F70B9F03F535C019只是一种十六进制数据(只是...

推荐阅读
图文推荐