1. 城镇大全网
  2. 综合百科

unicode码与ascii码兼容吗(什么是字符集和编码)

那天下午

————

在电脑的底部,比如你的名字“小萌”在电脑中并不是单词的形式,而是一串二进制数,比如“011001100110…”

人类只知道单词,可惜计算机只知道0和1,双方都无法妥协,所以必须有单词到0和1的映射。

从我们能看到的文本到0和1的映射叫做编码,反之亦然。这就是编码的意义。

因为计算机只能处理数字,所以如果要处理文本,必须先转换成数字。最早的计算机是以8位作为一个字节来设计的,所以一个字节所能代表的最大整数是255(二进制1111111=十进制255),0-255用来代表大小写英文字母、数字和一些符号。这个编码表称为ASCII编码。比如大写字母A的编码是65,小写字母是65。

Unicode编码定义了世界上几乎所有字符的数字表示(即你用眼睛看到的字符,如ABC、汉字等。),而且Unicode也兼容很多老的编码规范,比如刚才提到的ASCII码。

我国每个人都对应一个唯一的身份证号,Unicode也为每个人物发放一张身份证。这个“身份证”上有一串唯一的数字标识,用来识别这个人物。

这串数字在整个计算机世界中是唯一的,Unicode给这串数字ID起了个名字【码位】。

这个[[Unicode转换格式]是为了解决[码位]存储在电脑中的问题。

[码位]映射后得到的二进制字符串的转换格式单位称为[码位]。【码位】是一串二进制数,是这个二进制数的除法。

比如一个字符的码位二进制表示n个字节(n*8个二进制数),它的符号是8位(1个字节),那么它就有n个符号。

Unicode编码如今已经扩展到21位。为什么会扩展到21位?因为一开始美国人只考虑他们的26个英文字母和数字,随着越来越多国家的语言编码,Unicode不得不继续扩展。目前21位就够了。

UTF-32是最容易理解的一种。UTF-32意味着它的符号是32位。每32位读取一次码位,码位是Unicode对字符的编码。如前所述,它最长只有21位,所以每个UTF-32值可以直接表示相应的码位。

什么码空?前面提到了Unicode,是21位的。这21位提供1,114,112个码点,码空对应于这1,114,112个码点。

顺便说一句,这里要说的是,码位这么多不代表字符这么多。目前空只使用了10%左右,人类社会还没有创造出1114112这么多的文字。

码空被分成17个平面,每个平面具有65,536个字符(正好2字节和16位)。平面0被称为“BMP,基本多语种平面”,几乎涵盖了你能遇到的所有角色,除了表情符号(表情符号位于平面1-)。其他平面称为互补平面,大部分是空。

UTF-16更常见。它的符号是16位,也就是说每16位读取一次码位,得到码位的前16位,直到读取完毕。

这里用的是 编码空。BMP平面(也就是上面提到的基本多语言平面)中的每一个码位都被直接一一映射到一个UTF-16符号上。

由于BMP包含了几乎所有的常用字符,UTF-16一般需要UTF-32的空一半左右的空间。至于其他平面很少使用的码点,都是用两个16位符号编码。

UTF-8使用一到四个字节来编码一个码位。这些从0到127的码位直接映射到1个字节(对于只包含这个范围内的字符的文本,这使得UTF-8和ASCII完全相同)。接下来的1920个码点映射成2个字节,BMP中剩下的所有码点都需要3个字节。Unicode的其他平面中的代码点需要4个字节。UTF 8基于8位符号。UTF-8基于8位符号,所以不需要关心字节顺序(因为字节是8位,其他UTF-16和UTF-32在不同的机器编译环境下需要考虑字节顺序)。

作者:Jogory 转载自:微信官方账号,程序员Jogory,经作者授权 。

,

猜你喜欢:综合百科

综合百科unicode码与ascii码兼容吗(什么是字符集和编码)

转载请注明:原文链接 | http://www.nnxc.com.cn/10043353157.html