跳到主要内容

12. 相对于 RFC 2279 的变更 (Changes from RFC 2279)

本节记录 RFC 3629 相对于先前规范 RFC 2279 所做的变更.

字符范围限制 (Character Range Restriction)

将字符范围限制为 0000-10FFFF (UTF-16 可访问范围).

这是一项重要变更, 它将 UTF-8 限定在 Unicode 定义的字符空间内, 排除了此前允许但并不实用的 U+10FFFF 以上范围.

规范性来源变更 (Normative Source Change)

将 Unicode 作为 UTF-8 规范性定义的来源, 同时保留 ISO/IEC 10646 作为字符参考.

此变更承认 Unicode 是 UTF-8 编码规则的主要权威来源, 而 ISO/IEC 10646 仍作为字符集 (character repertoire) 的参考.

术语澄清 (Terminology Clarification)

理顺术语. 现在以字符编号的编码形式 (encoding form) 来描述 UTF-8. UCS-2 和 UCS-4 几乎不再出现.

更新后的术语将 UTF-8 描述为一种编码形式, 而不是一种转换格式, 从而使表述更清晰且更一致.

无效序列处理 (Invalid Sequence Handling)

将警告不要解码无效序列的说明改为规范性“不得”.

此前, 关于无效序列的警告属于资料性说明. 在 RFC 3629 中, 它成为一项规范性要求: 实现不得解码无效序列.

新增 BOM 章节 (BOM Section Addition)

新增一节关于 UTF-8 BOM 的内容, 并为协议提供建议.

第 6 节提供了全面指导, 涵盖:

  • 何时使用或禁止 BOM
  • 如何在不同协议上下文中处理 BOM
  • 面向协议设计者的建议

MIME 注册变更 (MIME Registration Change)

移除了建议的 UNICODE-1-1-UTF-8 MIME charset 注册.

移除了特定版本的 charset 标签, 改用通用的 "UTF-8" 标签, 该标签涵盖 Amendment 5 之后的所有 Unicode 版本.

新增 ABNF 语法 (ABNF Syntax Addition)

为有效的 UTF-8 八位组序列 (octet sequences) 增加了 ABNF 语法

第 4 节现在包含正式的 ABNF 语法, 精确定义了有效的 UTF-8 字节序列, 使实现者更容易验证 UTF-8 数据.

安全章节扩展 (Security Section Expansion)

扩展了安全考虑 (Security Considerations) 章节, 特别是 Unicode 规范化的影响

安全章节得到显著增强, 包括:

  • 对过长编码攻击 (overlong encoding attacks) 的详细讨论
  • 缓冲区溢出风险
  • 规范等价 (canonical equivalence) 的安全影响
  • 对 Unicode 规范化形式 (Unicode Normalization Forms) 的引用

相关链接