UTF-8编码

第一部分:Unicode基础概念

Unicode的作用

Unicode是一个字符集标准,为世界上几乎所有的字符分配了一个唯一的编号,称为码点(Code Point)

Unicode就像是一个"世界通用字典",给每个字符都分配了一个唯一的编号。

字符Unicode信息查询

输入字符后点击按钮查看Unicode信息

1Unicode码点表示方法

Unicode码点用 U+xxxx 格式表示:

  • 'A' = U+0041 = 65(十进制)
  • '中' = U+4E2D = 20013(十进制)
  • '😀' = U+1F600 = 128512(十进制)

第二部分:UTF-8编码规则

UTF-8编码特点

UTF-8是Unicode的一种编码方式,将Unicode码点转换为字节序列,用于存储和传输。

特点:

  • 变长编码(1-4字节)
  • 兼容ASCII(英文字符只用1字节)
  • 节省存储空间

UTF-8编码规则表

Unicode范围 十进制范围 字节数 UTF-8格式 数据位数 示例
U+0000 ~ U+007F 0 ~ 127 1字节 0xxxxxxx 7位 A, B, C...
U+0080 ~ U+07FF 128 ~ 2047 2字节 110xxxxx 10xxxxxx 11位 拉丁字母扩展
U+0800 ~ U+FFFF 2048 ~ 65535 3字节 1110xxxx 10xxxxxx 10xxxxxx 16位 中文、日文、韩文
U+10000 ~ U+10FFFF 65536 ~ 1114111 4字节 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx 21位 Emoji表情

2编码规则说明

首字节标识:通过首字节的前几位判断字节数

  • 0xxxxxxx:1字节(ASCII)
  • 110xxxxx:2字节的首字节
  • 1110xxxx:3字节的首字节
  • 11110xxx:4字节的首字节

后续字节标识:所有后续字节都以 10 开头

数据位填充:x 表示实际数据位

第三部分:具体实例演示

1实例1:英文字母 'A'(1字节)

A

2实例2:汉字 '中'(3字节)

3实例3:Emoji表情 '😀'(4字节)

😀

第四部分:位运算

关键位运算符

位运算是UTF-8编码实现的核心技术。

运算符 说明 示例 作用
>> 右移(取高位) 0x4E2D >> 12 向右移动12位
<< 左移(放大) 0x4 << 12 向左移动12位
& 按位与(提取) 0x4E2D & 0x3F 提取特定位
| 按位或(组合) 0xE0 | 0x4 组合数据

位运算演示

输入数字后点击按钮查看位运算过程

第五部分:在线编码转换工具

字符 ↔ UTF-8 转换器

输入字符后点击按钮查看转换结果

UTF-8 ↔ 字符 转换器

输入UTF-8字节后点击按钮查看转换结果

重要知识点回顾

  1. Unicode 定义字符编号,UTF-8 定义存储方式
  2. UTF-8 是变长编码(1-4字节)
  3. 根据码点范围选择字节数
  4. 首字节和后续字节有固定的标识位
  5. 使用位运算提取和组合数据位
  6. Python 内置 encode()/decode() 方法最简单