12. Changes from RFC 2279 (RFC 2279からの変更点)
このセクションでは、前の仕様RFC 2279と比較して、RFC 3629で行われた変更を文書化します。
文字範囲の制限 (Character Range Restriction)
文字の範囲を0000-10FFFF(UTF-16アクセス可能範囲)に制限しました。
これは、UTF-8をUnicode定義の文字空間に制限し、以前は許可されていたがU+10FFFFを超える実用的でない範囲を除外する重要な変更です。
規範的ソースの変更 (Normative Source Change)
UnicodeをUTF-8の規範的定義のソースとし、ISO/IEC 10646を文字の参照として保持しました。
この変更は、UTF-8エンコーディング規則の主要な権威ソースとしてUnicodeを認識し、ISO/IEC 10646は文字レパートリーの参照として残ります。
用語の明確化 (Terminology Clarification)
用語を整理しました。UTF-8は、文字番号のエンコーディング形式の観点から記述されるようになりました。UCS-2とUCS-4はほぼ消えました。
更新された用語は、UTF-8を変換形式ではなくエンコーディング形式として、より明確で一貫性のある記述を提供します。
無効なシーケンスの処理 (Invalid Sequence Handling)
無効なシーケンスのデコードに対する警告の注記を、規範的なMUST NOTに変更しました。
以前、無効なシーケンスに関する警告は参考情報でした。RFC 3629では、実装が無効なシーケンスをデコードしてはならない (MUST NOT) という規範的要件になりました。
BOMセクションの追加 (BOM Section Addition)
UTF-8 BOMに関する新しいセクションを追加し、プロトコルに対するアドバイスを提供しました。
セクション6は、以下について包括的なガイダンスを提供します:
- BOMを使用または禁止する場合
- さまざまなプロトコルコンテキストでBOMを処理する方法
- プロトコル設計者への推奨事項
MIME登録の変更 (MIME Registration Change)
提案されていたUNICODE-1-1-UTF-8 MIME charset登録を削除しました。
バージョン固有のcharsetラベルは、修正第5版以降のすべてのUnicodeバージョンをカバーする汎用的な"UTF-8"ラベルを優先して削除されました。
ABNF構文の追加 (ABNF Syntax Addition)
有効なUTF-8オクテットシーケンスのABNF構文を追加しました
セクション4には、有効なUTF-8バイトシーケンスを正確に定義する正式なABNF文法が含まれており、実装者がUTF-8データを検証しやすくなっています。
セキュリティセクションの拡張 (Security Section Expansion)
セキュリティに関する考慮事項セクションを拡張し、特にUnicode正規化の影響について追加しました
セキュリティセクションは、以下を含めるように大幅に強化されました:
- 過長エンコーディング攻撃の詳細な議論
- バッファオーバーフローのリスク
- 正規等価性のセキュリティへの影響
- Unicode正規化形式への参照