字符编码一:Unicode 与 UTF-8之间的关系
来源:互联网 发布:淘宝小说 编辑:程序博客网 时间:2024/05/07 13:45
一、Unicode编码
Unicode 是国际组织制定的可以容纳世界上所有文字和符号的字符编码方案,又称统一码。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。1990 年开始研发,1994 年正式公布。
Unicode 是国际组织制定的可以容纳世界上所有文字和符号的字符编码方案。目前的Unicode字符分为17组编排,0x0000 至 0x10FFFF,每组称为平面(Plane),而每平面拥有 65536 个码位,共 65536*17=1114112 个,也就是说按照目前的编码方案,至少可以为 1114112 个字符进行二进制编码,目前只用了少数的平面。
通俗的将,Unicode相当于一部字典,为每一个字符定义了一个世界通用的二进制编码,比如我们中国的新华字典,定义了汉字的拼音编码。后面提到的UTF-8 是基于 Unicode 编码的一种计算机实现方式。
Unicode 17 个平面的编码范围如下表:
二、UTF-8编码
UTF-8(8-bit Unicode Transformation Format) 是一种针对Unicode的可变长度便于计算机处理和识别的字符编码,又称万国码。由Ken Thompson于1992年创建。现在已经标准化为RFC 3629。UTF-8用1到4个字节编码Unicode字符。用在网页上可以统一页面显示中文简体繁体及其它语言(如英文,日文,韩文)。UTF-8、UTF-16、UTF-32都是将 Unicode 编码转换为便于计算机处理和识别的编码方案。
UTF-8 以字节为单位对 Unicode 进行编码。从 Unicode 到 UTF-8 的编码方式如下表所示:
UTF-8的特点是对不同范围的字符使用不同长度的编码。对于0x00-0x7F之间的字符,UTF-8编码与ASCII编码完全相同。UTF-8编码的最大长度是6个字节。从上表可以看出,6字节模板有31个x,即可以容纳31位二进制数字。Unicode的最大码位0x7FFFFFFF也只有31位。
例1:“汉”字的Unicode编码是0x6C49。0x6C49在0x0800-0xFFFF之间,使用用3字节模板了:1110xxxx 10xxxxxx 10xxxxxx。将0x6C49写成二进制是:0110 1100 0100 1001, 用这个比特流依次代替模板中的x,得到:11100110 10110001 10001001,即E6 B1 89。
例2:Unicode编码0x20C30在0x010000-0x10FFFF之间,使用用4字节模板了:11110xxx 10xxxxxx 10xxxxxx 10xxxxxx。将0x20C30写成21位二进制数字(不足21位就在前面补0):0 0010 0000 1100 0011 0000,用这个比特流依次代替模板中的x,得到:11110000 10100000 10110000 10110000,即F0 A0 B0 B0。
三、参考资料
- Unicode编码
- Unicode(UTF-8, UTF-16)令人混淆的概念
- 字符编码一:Unicode 与 UTF-8之间的关系
- 字符编码:Unicode和UTF-8之间的关系
- 字符编码:Unicode和UTF-8之间的关系
- 常见的几种字符编码方式及Unicode与UTF-8之间的关系
- Python 字符编码学习-ascii编码,Unicode和UTF-8之间的关系
- ASCII,Unicode,UTF-8,GB2312编码之间的关系
- ASCII,Unicode,UTF-8,GB2312编码之间的关系
- [转] ASCII,Unicode,UTF-8,GB2312编码之间的关系
- 字符编码 ASCII UTF-8 UNICODE 的关系
- 字符编码(ASCII、Unicode和UTF-8的关系)
- 字符编码 ASCII,Unicode和UTF-8的关系
- 字符编码 ASCII,Unicode和UTF-8的关系
- 字符编码 ASCII,Unicode和UTF-8的关系
- 字符编码 ASCII,Unicode,UTF-8的关系
- Unicode 编码与UTF-8编码之间的转换
- 字符编码之ASCII、Unicode以及utf-8之间的联系与区别
- Unicode与UTF-8之间转换关系
- 编码介绍--gbk, gb2312,big5,unicode,utf-8,utf-16之间的关系
- 在线支付
- struts2学习-3
- w3school SQL教程整理
- spring aop 中切面表达式规则
- 通配符的匹配很全面, 但无法找到元素 'http' 的声明
- 字符编码一:Unicode 与 UTF-8之间的关系
- Cook-Torrance光照模型附 shader代码
- 基于原型链的继承方式
- 时间入库问题:Incorrect datetime value: '' for column 'createTime' at row 1
- 使用plsql两种快速度修改表内容的方法以及区别
- SDKD 2016 Winter Single Training B, div2 出题总结
- Codeforces 119C Education Reform【dp+路径输出】
- 菜鸟之路——Spring MVC(三)DispatcherServlet详解
- TOMCAT服务器不写端口号、不写项目名访问项目、虚拟目录配置