跳到主要内容

8. MIME 注册

注册依据

根据 [RFC2978], 本备忘录作为注册 UTF-8 的 MIME charset 参数的依据. charset 参数值为 "UTF-8".

媒体类型标记

该字符串用于标记包含文本的媒体类型. 这些文本由 ISO/IEC 10646 字符库中的字符组成, 至少包括 1993 版截至修正案 5 (Korean block) 的所有修正, 并使用上述编码方案编码为八位组序列.

UTF-8 适合用于 "text" 顶级类型下的 MIME 内容类型.

与版本无关的标签依据

值得注意的是, 标签 "UTF-8" 不包含版本标识, 而是泛指 ISO/IEC 10646. 这是有意为之, 理由如下:

MIME Charset 标签的目的

MIME charset 标签的设计目的, 只是提供把在线路上接收到的字节序列解释为字符序列所需的信息, 不多不少 (见 [RFC2045], 第 2.2 节).

只要字符集标准没有发生不兼容变更, 版本号就没有作用. 因为即使从标签得知可能会收到自己尚不了解的新分配字符, 也不会获得任何实际收益. 标签本身不会说明这些新字符, 而这些字符无论如何都会被接收到.

优点与缺点

因此, 只要标准以兼容方式演进, 使用标识版本的标签所带来的表面优势也仅仅是表面的.

但这种依赖版本的标签存在缺点: 当较旧的应用收到带有较新且未知标签的数据时, 它可能无法识别该标签, 从而完全无法处理这些数据. 相反, 一个通用且已知的标签通常会触发基本正确的数据处理, 而这些数据很可能并不包含任何新字符.

"Korean Mess" 例外

不过, "Korean mess" (ISO/IEC 10646 amendment 5) 是一次不兼容变更, 原则上与上述与版本无关的 MIME charset 标签的适用性相矛盾.

但是, 兼容性问题只会出现在包含 Korean Hangul 字符的数据中, 且这些字符是按照 Unicode 1.1 (或等价地, 修正案 5 之前的 ISO/IEC 10646) 编码的. 可以认为并没有这样的数据需要担心, 这也正是该不兼容变更被认为可以接受的原因.

未来的不兼容变更

因此在实践中, 与版本无关的标签是有充分理由的, 前提是:

  • 该标签被理解为指代 Amendment 5 之后的所有版本
  • 实际上没有发生不兼容变更

如果 ISO/IEC 10646 的后续版本发生不兼容变更, 除非且直到 IETF 明确作出其他决定, 本文定义的 MIME charset 标签将继续与先前版本保持一致.


相关链接