Unicode编码说明

146 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

@[toc]

Unicode编码

ref

Unicode 和 UTF-8 的关系与区别

我的csdn:unicode编码

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,即00~2712^7-1

    传1个字节就行,用最高位 置1表示,即0XXXXXXX,剩下7位表示符号,对应ASCII

  • 第二层:128-2047,272^7~21012^{10}-1

    传2个字节,即110XXXXX 10XXXXXX,5位表示层级,11位表示符号

  • 第三层:2048-65535,2102^{10}~21612^{16}-1

    传3个字节,即1110XXXX 10XXXXXX 10XXXXXX

  • 第四层:65536-...,

    传4个字节,即11110XXX 10XXXXXX 10XXXXXX 10XXXXXX,共有21位表示符号,可以表示约104万个字符

Unicode

为世界上所有字符都分配了一个唯一的数字编号

但是,只规定了每个字符的数字编号是多少,并没有规定这个编号如何存储

因此,这需要一套编码规则,比如UTF-8

Unicode用于解决

  1. 避免不同编码方案,同编码不同字符的尴尬问题
  2. 避免不同编码方案,不同编码长度的问题

解决办法

采用Unicode方案——为世界上所有字符都分配了一个唯一的数字编号,一般用十六进制表示。

其他

计算机存储的最小单位就是字节

最后说明: 欢迎大家提出意见,欢迎批评指正!共同学习,共同进步!