1. Unicode字符编码
1.1. Unicode可以被不同的字符集兼容。最常用的编码方式是UTF-8和UTF-16。
1.2. UTF8中的字符可以是1-4个字节长。UTF-8可以表示Unicode标准中的任意字符。UTF-8向后兼容ASCII。UTF-8是网页和电子邮件的首选编码。
1.3. UTF-16: 16比特的Unicode转换格式是一种Unicode可变字符编码, 能够对全部Unicode指令表进行编码。UTF-16主要被用于操作系统和环境中, 比如微软的Windows 2000/XP/2003/Vista/CE以及Java和.NET字节代码环境。
2. Unicode和UTF-8的区别
2.1. Unicode是一个字符集。UTF-8属于编码。
2.2. Unicode是具有唯一十进制数字(代码点)的字符列表。A = 65,B = 66,C = 67,....
2.3. 更简单点理解就是Unicode是数字和字符的一对一的映射。
2.4. 这个十进制数字表示字符串"hello": 104 101 108 108 111。
2.5. 编码指的是如何将这些数字转换成存储在计算机中的二进制数字:
UTF-8编码将像这样存储"hello"(二进制): 01101000 01100101 01101100 01101100 01101111
2.6. 编码将数字转换为二进制。字符集将字符转换为数字。
3. UTF-8编码规则
3.1. 如果一个字节, 最高位(第8位)为0, 表示这是一个ASCII字符(00-7F)。可见, 所有ASCII编码已经是UTF-8了。
3.2. 如果一个字节, 以11开头, 连续的1的个数暗示这个字符的字节数, 例如: 110xxxxx代表它是双字节UTF-8字符的首字节。
3.3. 如果一个字节, 以10开始, 表示它不是首字节, 需要向前查找才能得到当前字符的首字节。
4