编码

ASCII 

American Standard Code for Information Interchange,美国信息交换标准代码。是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。起始于50年代后期,在1967年定案,是现今最通用的单字节编码系统,但不能良好满足其它非英语国家的需要。

编码_第1张图片

Unicode

Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。1990年开始研发,1994年正式公布。Unicode就像一个电话本,标记着字符和数字之间的映射关系。Joel称之为「神奇数字」,因为它们可能是随机指定的,而且不会给出任何解释。官方术语是码位(Code Point),总是用U+开头。理论上每种语言中的每种字符都被Unicode协会指定了一个神奇数字。例如希伯来文中的第一个字母א,是U+2135,字母A是U+0061。Unicode并不涉及字符是怎么在字节中表示的,它仅仅指定了字符对应的数字,仅此而已。

常见范围:

汉字:[0x4e00,0x9fa5](或十进制[19968,40869])
数字:[0x30,0x39](或十进制[48, 57])
小写字母:[0x61,0x7a](或十进制[97, 122])
大写字母:[0x41,0x5a](或十进制[65, 90])

Unicode编码

UTF-8(8-bit Unicode Transformation Format)是一种针对Unicode的可变长度字符编码,又称万国码,由Ken Thompson于1992年创建。现在已经标准化为RFC 3629。UTF-8用1到6个字节编码Unicode字符,并实现了对ASCII码的向后兼容,这意味着1980年代写的文档用UTF-8打开一点问题都没有。

Unicode/UCS-4

bit数

UTF-8

byte数

备注

0000 ~ 007F

[0, 127]

0~7

0XXX XXXX

1

 

0080 ~ 07FF

[128, 2047]

8~11

110X XXXX

10XX XXXX

2

 

0800 ~ FFFF

[2048, 65535]

12~16

1110XXXX

10XX XXXX

10XX XXXX

3

基本定义范围:0~FFFF

1 0000 ~ 1F FFFF

[65536, 2097151]

17~21

1111 0XXX

10XX XXXX

10XX XXXX

10XX XXXX

4

Unicode6.1定义范围:0~10 FFFF

 

 

参考:

https://www.freebuf.com/articles/others-articles/25623.html

你可能感兴趣的:(编码)