什么是 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 为主的文本高效
常见用途
- 网页编码(HTML、CSS、JavaScript)
- JSON 和 XML 数据文件
- 数据库文本存储
- 电子邮件和消息系统
- 源代码文件
示例
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 是更通用的选择。