UTFとは

UTFとは

Unicode (または UCS) Transformation Format の略語です。
UTF-1, UTF-2, UTF-5, UTF-6, UTF-7, UTF-8, UTF-9, UTF-16, UTF-17, UTF-18, UTF-32 があります。
しかし、実際使用されているのは、UTF-8, UTF-16, UTF-32 です。

UCSとは

Universal Character Set の略語です。ISO 10646 の文字集合をあらわしています。

BE, LEとは

UTF-16BE, UTF-16LE, UTF-32BE, UTF-32LE のように UTF-XX の後に BE または LE が付くことがあります。
これは、その文字コードを表現しているバイナリのエンディアンを明示しています。
BE (Big Endian)
LE (Little Endian)
このように、エンディアンを明示する方式のほかに BOM をファイル先頭に挿入して、暗黙的にエンディアンを識別させる方法もあります。

BOMとは

Byte Order Mark の略で、文字コードのエンディアンを判定するために用いられます。 コードポイントは U+0000FEFF です。これをファイルの先頭などに挿入することにより自動的にエンディアンを判定できます。 ちなみに、U+0000FFFE はゼロ幅空白 (Zero Width Non-breaking Space) をあらわしています。

先頭からの数バイトUTF 名
00,00,FE,FFUTF-32BE
FF,FE,00,00UTF-32LE
FE,FFUTF-16BE
FF,FEUTF-16LE
EF,BB,BFUTF-8

各 UTF 間では自由に変換できるの?

各 UTF 間で変換は可能ですが、それぞれの変換方式が想定している制限を考慮するといったん別のUTFに変換してから、変換後のUTFに変換することもあります。

UTF の種類

UTF表現可能最大値バイト長別名コメント出典
UTF-10x7FFFFFFF1-5-破棄されたISO 10646:1993 Annex G
UTF-20x7FFFFFFF1-6UTF-8UTF-8 の旧名-
UTF-50x7FFFFFFF1-8-DNS への使用を想定draft-jseng-utf5-00.txt: UTF-5, a transformation format of Unicode and ISO 10646 (失効)
UTF-60x0010FFFF1--DNS への使用を想定。UTF-5 の改良版だから UTF-6。UTF の 6bit 版ではない。draft-ietf-idn-utf6-00.txt: UTF-6 - Yet Another ASCII-Compatible Encoding for IDN (失効)
UTF-70x0010FFFF1-6-Mail での使用を想定RFC2152: UTF-7 A Mail-Safe Transformation Format of Unicode
UTF-80x7FFFFFFF1-6FSS-UTFファイルシステムでの使用を想定RFC2279: UTF-8, a transformation format of ISO 10646
UTF-90x7FFFFFFF1-4-36bitワード計算機用RFC4042: UTF-9 and UTF-18 Efficient Transformation Formats of Unicode (2005 Joke RFC)
UTF-160x0010FFFF2,4--RFC2781: UTF-16, an encoding of ISO 10646
UTF-170x0010FFFF8-64bit アーキテクチャ用。UTF-16 の次という意味から UTF-17 だと思われる。 UTF の 17bit 版ではない。draft-whistler-utf17-00.txt: Unicode Transformation Format Seventeen (失効)
UTF-180x0002FFFF, 0x000E0000 - 0x000EFFFF2-36bitワード計算機用RFC4042: UTF-9 and UTF-18 Efficient Transformation Formats of Unicode (2005 Joke RFC)
UTF-320x0010FFFF4--Unicode TR19

UTF-1 が使用されない理由

  • 符号化すると2バイト以降に '/' が現れるのでファイルシステムといっしょに使えない
  • 符号化文字列の途中から検索すると文字の開始位置がわからない
  • 割り算が入るので重くなる

などの問題が UTF-1 を使うと発生しました。 この結果が、UTF-2 (後に UTF-8 とされる) の開発につながっていきました。 UTF-8 では符号化した2バイト以降には '/' が出現しません。 その結果ファイルシステムと一緒に使用することができます。 そのようなことから、FSS-UTF (File System Safe UTF) とも呼ばれるようになりました。

スポンサーリンク

関連記事

スポンサーリンク

<LABEL> フォーム部品と項目名(ラベル)を関連付ける

ホームページ製作・web系アプリ系の製作案件募集中です。

上に戻る