本文已参与「新人创作礼」活动,一起开启掘金创作之路。
@[toc]
Unicode编码
ref
note
相关概念:
Unicode (”Universal Multiple-Octet Coded Character Set”,简称 UCS, 俗称 “unicode“)
UTF(UCS Transfer Format)
Unicode广义上分为Unicode编码集和UTF编码规则
UTF-8:
一种变长编码规则,每次传输数据传8位
Unicode一个中文字符占2个字节,而UTF-8一个中文字符占3个字节,有对应规则转换
传输规则:
-
每次只能传8位,所以范围是0-65535
-
可以把unicode的范围划分为4个层级,对应使用1-4个字节,做成变长
-
第一层:0-127,即~
传1个字节就行,用最高位 置1表示,即
0XXXXXXX,剩下7位表示符号,对应ASCII -
第二层:128-2047,~
传2个字节,即
110XXXXX 10XXXXXX,5位表示层级,11位表示符号 -
第三层:2048-65535,~
传3个字节,即
1110XXXX 10XXXXXX 10XXXXXX -
第四层:65536-...,
传4个字节,即
11110XXX 10XXXXXX 10XXXXXX 10XXXXXX,共有21位表示符号,可以表示约104万个字符
Unicode:
为世界上所有字符都分配了一个唯一的数字编号
但是,只规定了每个字符的数字编号是多少,并没有规定这个编号如何存储
因此,这需要一套编码规则,比如UTF-8
Unicode用于解决:
- 避免不同编码方案,同编码不同字符的尴尬问题
- 避免不同编码方案,不同编码长度的问题
解决办法:
采用Unicode方案——为世界上所有字符都分配了一个唯一的数字编号,一般用十六进制表示。
其他:
计算机存储的最小单位就是字节
最后说明: 欢迎大家提出意见,欢迎批评指正!共同学习,共同进步!