UTF-8 是一个字符编码系统。它可以让你将字符表示为 ASCII 文本,同时还允许使用国际字符,如中文字符。
截至 2020 年代中期,UTF-8 是最流行的编码系统之一。
要开始使用 UTF-8,你首先要熟悉基本的 ASCII 字符集。
什么是 ASCII 字符集
ASCII 使用 7 位代码来表示 128 个不同的字符。这些代码被分为 95 个可打印的字符,其中包括 26 个英文字母(A 到 Z,包括大写和小写)、10 个数字(0 到 9),以及各种标点符号和其他符号。
还有 33 个不可打印的字符,其中包括控制字符,如回车和换行,以及其他各种用于格式化文本的字符。
UTF-8 和 ASCII 有什么区别
UTF-8 扩展了 ASCII 字符集,使用 8 位代码,允许多达 256 个不同的字符。
这意味着 UTF-8 可以表示所有可打印的 ASCII 字符,以及不可打印的字符。
UTF-8 还包括各种额外的国际字符,如中文字符和阿拉伯字符。
如何在你的网页中使用 UTF-8 – HTML UTF-8 实例
现在是最简单的部分。你实际上不需要知道它是如何工作的(尽管我一会儿会告诉你)。你可以在你的 HTML 代码中配置 UTF-8 字符编码,只需在代码的 <head>
部分写上一行 HTML:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
</head>
</html>
说完这些,让我解释一下 UTF-8 是如何工作的,以及为什么它是一个出色的编码方案。
UTF-8 编码是如何工作的,以及每个字符使用的存储量是多少
当用 UTF-8 表示字符时,每个代码都由一个或多个字节的序列来表示。使用的字节数取决于该字符所代表的码位。下面是使用范围的细分:
- 在 ASCII 范围内(0-127)的代码由一个字节表示
- (128-2047)范围内的码位由两个字节表示
- (2048-65535)范围内的代码点由三个字节表示
- (65536-1114111)范围内的代码由四个字节表示。(这似乎是很多可能的字符,但请记住,仅在中文中,就有数 10 万个字符。)
UTF-8 序列的第一个字节被称为 “leader byte”。leader byte 提供了关于序列中有多少个字节的信息,以及字符的码位值是什么。
单字节序列的 leader byte 总是在(0-127)范围内。两字节序列的 leader byte 在(194-223)范围内。三字节序列的 leader byte 在(224-239)范围内。四字节序列的 leader byte 在(240-247)范围内。
序列中剩余的字节被称为 “trailing bytes”。两字节序列的 trailing bytes 的范围是(128-191)。三字节序列的 trailing bytes 的范围是(128-191)。而四字节序列的 trailing bytes 在(128-191)范围内。
你可以通过查看 leader bytes 和 trailing bytes 来计算一个字符的码位值。对于一个单字节的序列,其码位值等于 leader bytes 的值。
对于一个两字节的序列,码位值等于 ((leader byte – 194) * 64) + (trailing byte – 128)。
对于一个三字节的序列,码位值等于 ((leader byte – 224) * 4096) + ((trailing byte1 – 128) * 64) + (trailing byte2 – 128)。
对于一个四字节的序列,码位值等于 ((leader byte – 240) * 262144) + ((trailing byte1 – 128) * 4096) + ((trailing byte2 – 128) * 64) + (trailing byte3 – 128)。
UTF-8 是一个不错的编码选择
UTF-8 是一个超级有效的编码系统。它可以代表广泛的字符,同时仍然与 ASCII 兼容。这使得它成为国际化软件中的一个不错选择。