Unicode编码
一.ASCLL码
- ASCII ((American Standard Code for Information Interchange): 美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。它是最通用的信息交换标准,并等同于国际标准ISO/IEC 646。到目前为止共定义了128个字符
- 使用一个字节,8位二进制数,使用后7位二进制数组合表示128种(27)(0-127)字符,最高位为奇偶校验位。
二.码点与代码单元
-
码点
- 码点指与一个编码表中的某个字符对应的代码值(可以理解为编号),我们将这个代码值(编号)称为代码点,类比于**
ASCII
码,码点就好比字符所对应的ASCII
**值 - 可以理解为字符,一个代码点就是一个字符
- 码点指与一个编码表中的某个字符对应的代码值(可以理解为编号),我们将这个代码值(编号)称为代码点,类比于**
-
代码单元
- 代表最小的可用来识别一个合法字符的最小字节数
- 码点由若干代码单元构成
- 不同编码,代码单元长度不一样
- UTF-8 :使用变长的字节序列来表示字符,代码单元由 8 位(1字节)组成,字符使用1-4个字节表示,即一个码点由1-4个代码单元组成
- UTF-16 :使用变长的字节序列来表示字符,代码单元由 16 位(2字节)组成,字符使用2个或者4个字节表示,即一个码点由1-2个代码单元组成
- UTF-32 :使用定长的字节序列来表示,代码单元由32位(4字节)组成,字符使用4个字节表示,即一个码点由1个代码单元组成
- GB18030 中的代码单元由 8 位(1字节)组成
UTF-16编码
采用不同长度的编码表示所有Unicode
码点,在基本多语言平面,每个字符用16位表示,通常称为代码单元。length方法
返回采用UTF-16编码
表示的给定字符串所需要的代码单元数量