UTF-8 编码规则详解:从字符到字节
UTF-8 编码规则详解:从字符到字节
UTF-8 (8-bit Unicode Transformation Format) 是一种用于表示 Unicode 字符的可变长编码方式,它凭借着高效性和对多种语言的支持,成为了互联网和计算机系统中流行的字符编码标准。
那么,UTF-8 究竟是如何将抽象的字符转换成具体的字节的呢?
1. 码点与字节长度:
Unicode 字符集中的每个字符都对应着一个唯一的码点(code point)。UTF-8 根据码点的大小,将其编码为 1 到 4 个字节不等的序列。
2. 编码单元:
UTF-8 使用 8 位(1 字节)作为一个编码单元,取值范围为 0x00 到 0xFF (0 到 255)。
3. 编码规则:
-
单字节: 对于码点在 U+0000 到 U+007F 之间的字符,UTF-8 直接使用该编码单元表示,与 ASCII 字符集保持兼容。
-
多字节: 对于需要用多个字节表示的字符,UTF-8 采用以下规则:
-
起始字节: 起始字节的前几位比特用于标识该编码单元的长度。例如,两个字节的编码单元,起始字节的前缀为 '110';三个字节的编码单元,起始字节的前缀为 '1110',以此类推。
-
后续字节: 后续字节的前两位比特固定为 '10',剩余比特位与起始字节一起表示 Unicode 字符的码点。
-
4. 示例:
例如,字符 '汉' 的 Unicode 码点为 U+6C49,根据 UTF-8 编码规则,它需要用三个字节表示:
* 码点二进制: '110110001001001'
* 填充到三个字节: '1110**1101** 10**100010** 10**01001**'
* 最终编码: 'E6 B1 89'
总结:
UTF-8 以其灵活的编码方式,实现了对各种 Unicode 字符的高效表示,并保证了与 ASCII 的兼容性,这使得它成为了互联网时代信息交流的基石。
原文地址: https://www.cveoy.top/t/topic/TxP 著作权归作者所有。请勿转载和采集!