跳到主要内容

RFC 3629 - UTF-8, ISO 10646 的转换格式

  • 状态: Internet Standard
  • 发布日期: November 2003
  • Stream: IETF
  • 废弃了: RFC2279
  • 勘误: 无勘误

摘要

ISO/IEC 10646-1 定义了一个称为 Universal Character Set (UCS) 的大型字符集, 它涵盖了世界上大多数书写系统. 然而, 最初提出的 UCS 编码与许多现有应用和协议并不兼容, 这促成了 UTF-8 的发展, 也就是本文档的主题. UTF-8 的特点是保留完整的 US-ASCII 范围, 从而兼容依赖 US-ASCII 值但对其他值透明的文件系统、解析器和其他软件. 本备忘录废弃并取代 RFC 2279.


本备忘录状态

本文档为 Internet 社区规定一项 Internet 标准跟踪协议, 并请求讨论和改进建议. 请参考当前版本的 "Internet Official Protocol Standards" (STD 1), 了解本协议的标准化阶段和状态. 本备忘录可无限制分发.


版权声明

Copyright (C) The Internet Society (2003). All Rights Reserved.


目录


UTF-8 为什么重要?

UTF-8 是现代 Internet 的标准字符编码. 几乎所有现代 Web 应用、API 和数据格式都使用 UTF-8.

核心优势

特性描述重要性
ASCII 兼容ASCII 字符以相同字节编码极高
无字节序问题不存在 endian 差异极高
自同步可从任意位置恢复解码很高
空间效率较高英文 1 byte, CJK 通常 3 bytes很高
通用支持支持所有 Unicode 字符极高

UTF-8 编码规则速查

编码表

Unicode Range           Bytes  UTF-8 Byte Pattern
─────────────────────────────────────────────
U+0000 - U+007F 1 0xxxxxxx
U+0080 - U+07FF 2 110xxxxx 10xxxxxx
U+0800 - U+FFFF 3 1110xxxx 10xxxxxx 10xxxxxx
U+10000 - U+10FFFF 4 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx

字符范围覆盖

1 byte (ASCII):
- Latin letters, digits, basic punctuation
- Control characters
- Range: U+0000 - U+007F

2 bytes:
- Latin extensions
- Greek, Cyrillic, Arabic, Hebrew
- Range: U+0080 - U+07FF

3 bytes:
- CJK (Chinese, Japanese, Korean) characters
- Most other writing systems
- Range: U+0800 - U+FFFF

4 bytes:
- Emoji
- Historical scripts, rare CJK characters
- Range: U+10000 - U+10FFFF

相关资源

  • 官方文本: https://www.rfc-editor.org/rfc/rfc3629.txt
  • 官方页面: https://datatracker.ietf.org/doc/html/rfc3629