什么是 UTF-8?

UTF-8(8 位 Unicode 转换格式)是一种可变宽度字符编码,可以表示 Unicode 标准中的每个字符。它每个字符使用 1 到 4 个字节,并且向后兼容 ASCII。

快速了解

全称8 位 Unicode 转换格式
创建时间1992 年由 Ken Thompson 和 Rob Pike 设计
规范文档官方规范

工作原理

UTF-8 由 Ken Thompson 和 Rob Pike 于 1992 年设计,已成为 Web 的主要字符编码。其关键创新是可变宽度编码:ASCII 字符(0-127)只使用 1 个字节,使 UTF-8 对英文文本高效,同时仍支持所有 Unicode 字符。字符使用特定的位模式编码,指示后面跟随多少字节。UTF-8 是自同步的,意味着您可以在不从头读取的情况下找到字符边界。它是 HTML5、JSON 和大多数现代系统的默认编码。

主要特点

  • 可变宽度:每个字符 1-4 字节
  • 向后兼容 ASCII(前 128 个字符)
  • 自同步编码
  • 没有字节序问题(与 UTF-16 不同)
  • HTML5、JSON 和 Web 的默认编码
  • 对 ASCII 为主的文本高效

常见用途

  1. 网页编码(HTML、CSS、JavaScript)
  2. JSON 和 XML 数据文件
  3. 数据库文本存储
  4. 电子邮件和消息系统
  5. 源代码文件

示例

loading...
Loading code...

常见问题

UTF-8 和 Unicode 有什么区别?

Unicode 是一个字符集标准,为每个字符定义唯一的码点。UTF-8 是 Unicode 的一种编码实现方式,定义了如何将 Unicode 码点转换为字节序列。其他编码方式还包括 UTF-16 和 UTF-32。UTF-8 因其兼容性和效率成为最流行的 Unicode 编码。

为什么 UTF-8 是 Web 的首选编码?

UTF-8 成为 Web 标准有几个原因:1)向后兼容 ASCII,英文内容无需改变;2)可变长度编码对英文文本高效(每字符 1 字节);3)没有字节序问题;4)自同步特性便于错误恢复;5)被 HTML5、JSON 等标准采用为默认编码。

UTF-8 如何编码不同的字符?

UTF-8 使用 1-4 个字节编码字符:ASCII 字符(U+0000-007F)用 1 字节;拉丁扩展和常见符号(U+0080-07FF)用 2 字节;大多数常用字符包括中文(U+0800-FFFF)用 3 字节;表情符号和罕见字符(U+10000-10FFFF)用 4 字节。

如何在 HTML 中正确声明 UTF-8 编码?

在 HTML5 中,应在 <head> 部分添加 <meta charset="UTF-8">,且这个标签应尽可能靠前放置(在前 1024 字节内)。同时,服务器应发送 Content-Type: text/html; charset=utf-8 响应头。文件本身也应以 UTF-8 编码保存。

UTF-8 和 UTF-16 应该如何选择?

UTF-8 适合:Web 内容、以英文为主的文本、需要 ASCII 兼容性的场景。UTF-16 适合:Windows 内部 API、Java 和 JavaScript 内部字符串表示、以亚洲文字为主的文本。一般来说,对于存储和传输,UTF-8 是更通用的选择。

相关工具

相关术语

相关文章