UTF-1は、 ISO/IEC 10646 / Unicodeをバイトストリームに変換する旧式の方式です。自己同期機能がないため、部分文字列の検索やエラー回復が困難です。また、マルチバイトエンコーディングに ASCII 印刷文字を再利用するため、一部の用途には適していません (例えば、Unix ファイル名にはスラッシュに使用されるバイト値を含めることができません)。さらに、UTF-1 は 2 のべき乗ではない数値による除算と乗算を使用するため、エンコードやデコードが遅くなります。これらの問題から、UTF-1 は普及せず、すぐにUTF-8に置き換えられました。
UTF-8と同様に、UTF-1はASCIIとの下位互換性を持つ可変長エンコーディングです。Unicodeの各コードポイントは、1バイト、または2、3、5バイトのシーケンスで表されます。ASCIIのコードポイントはすべて1バイトです( U+0080からU+009Fまでのコードポイントも1バイトです)。
UTF-1では、マルチバイトエンコーディングにおいてC0およびC1制御コードやスペース文字は使用されません。0~ 0x20または0x7F~0x9Fの範囲のバイトは、常に対応するコードポイントを表します。この66個の保護文字を用いた設計は、ISO/IEC 2022との互換性を目指したものです。
UTF-1 は「モジュロ190」演算 (256 − 66 = 190) を使用します。比較のために、UTF-8 は 128 個の ASCII 文字すべてを保護し、そのために 1 ビット、自己同期のために 2 ビット目が必要となり、「モジュロ 64」演算 ( 8 − 2 = 6 ; 2 6 = 64 ) となります。BOCU -1 はMIME互換性に必要な最小限のセット(0x00、0x07–0x0F、0x1A–0x1B、および 0x20) のみを保護し、「モジュロ 243」演算 (256 − 13 = 243) となります。
現代のUnicodeはU+10FFFFで終わりますが、UTF-1とUTF-8はどちらも元のユニバーサル文字セット(UCS-4 )の31ビットすべてをエンコードするように設計されており、この表の最後の項目はこの元の最終コードポイントを示しています。
{{cite web}}: CS1 maint: 数値名: 著者リスト (リンク)