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,FF | UTF-32BE |
FF,FE,00,00 | UTF-32LE |
FE,FF | UTF-16BE |
FF,FE | UTF-16LE |
EF,BB,BF | UTF-8 |
各 UTF 間では自由に変換できるの?
各 UTF 間で変換は可能ですが、それぞれの変換方式が想定している制限を考慮するといったん別のUTFに変換してから、変換後のUTFに変換することもあります。
UTF の種類
UTF | 表現可能最大値 | バイト長 | 別名 | コメント | 出典 |
---|---|---|---|---|---|
UTF-1 | 0x7FFFFFFF | 1-5 | - | 破棄された | ISO 10646:1993 Annex G |
UTF-2 | 0x7FFFFFFF | 1-6 | UTF-8 | UTF-8 の旧名 | - |
UTF-5 | 0x7FFFFFFF | 1-8 | - | DNS への使用を想定 | draft-jseng-utf5-00.txt: UTF-5, a transformation format of Unicode and ISO 10646 (失効) |
UTF-6 | 0x0010FFFF | 1- | - | DNS への使用を想定。UTF-5 の改良版だから UTF-6。UTF の 6bit 版ではない。 | draft-ietf-idn-utf6-00.txt: UTF-6 - Yet Another ASCII-Compatible Encoding for IDN (失効) |
UTF-7 | 0x0010FFFF | 1-6 | - | Mail での使用を想定 | RFC2152: UTF-7 A Mail-Safe Transformation Format of Unicode |
UTF-8 | 0x7FFFFFFF | 1-6 | FSS-UTF | ファイルシステムでの使用を想定 | RFC2279: UTF-8, a transformation format of ISO 10646 |
UTF-9 | 0x7FFFFFFF | 1-4 | - | 36bitワード計算機用 | RFC4042: UTF-9 and UTF-18 Efficient Transformation Formats of Unicode (2005 Joke RFC) |
UTF-16 | 0x0010FFFF | 2,4 | - | - | RFC2781: UTF-16, an encoding of ISO 10646 |
UTF-17 | 0x0010FFFF | 8 | - | 64bit アーキテクチャ用。UTF-16 の次という意味から UTF-17 だと思われる。 UTF の 17bit 版ではない。 | draft-whistler-utf17-00.txt: Unicode Transformation Format Seventeen (失効) |
UTF-18 | 0x0002FFFF, 0x000E0000 - 0x000EFFFF | 2 | - | 36bitワード計算機用 | RFC4042: UTF-9 and UTF-18 Efficient Transformation Formats of Unicode (2005 Joke RFC) |
UTF-32 | 0x0010FFFF | 4 | - | - | Unicode TR19 |
UTF-1 が使用されない理由
- 符号化すると2バイト以降に '/' が現れるのでファイルシステムといっしょに使えない
- 符号化文字列の途中から検索すると文字の開始位置がわからない
- 割り算が入るので重くなる
などの問題が UTF-1 を使うと発生しました。 この結果が、UTF-2 (後に UTF-8 とされる) の開発につながっていきました。 UTF-8 では符号化した2バイト以降には '/' が出現しません。 その結果ファイルシステムと一緒に使用することができます。 そのようなことから、FSS-UTF (File System Safe UTF) とも呼ばれるようになりました。
関連記事
- プログラムでもっとも正確に日本の祝日を求める方法(内閣府公表CSVの過去3度の改訂履歴)
- FAT(File Allocation Table)ファイルシステムの仕様 FAT16 FAT32 exFAT VFAT
- SDカード・microSDカードの規格
- Raspberry Pi 4 Model Bのチップ・無線LANアンテナ
- Raspberry Pi Zero WHのチップ・無線LANアンテナ(大きなチップはCPUではありません)
- 各ストレージの速度一覧 規格速度や実効速度(HDD/SSD/M2/NVMe/USBメモリ)
- メールテキストの1行の文字数制限(最大1,000文字、78文字以下であるべき)
- サイトマップ(sitemap.xml)のつくり方とちょっとしたテクニック
- Mobile Network Code(MNC)の一覧[V-Z]
- Mobile Network Code(MNC)の一覧[T-U]
- Mobile Network Code(MNC)の一覧[S]
- Mobile Network Code(MNC)の一覧[O-R]
- Mobile Network Code(MNC)の一覧[M-N]
- Mobile Network Code(MNC)の一覧[J-L]
- Mobile Network Code(MNC)の一覧[H-I]
- Mobile Network Code(MNC)の一覧[E-G]
- Mobile Network Code(MNC)の一覧[C-D]
- Mobile Network Code(MNC)の一覧[A-B]
- Mobile Country Code(MCC)の一覧
- コードページの一覧
- オープンソースライセンスの一覧と日本語訳(全52種類)
- ASCIIコード表
- IPアドレス サブネットマスク プレフィックス 早見表
- [暗号化]ブロック暗号とは(AES/DES/Blowfish PKCS5Padding ECB/CBC IV)
- 文字実体参照(実体参照)の一覧
- 各地域、各国に割り振られているIPアドレス
- トラックバックの仕様
- webサイト巡回ツールのユーザーエージェント一覧
- whoisに表示されるステータス一覧
- Whoisサーバー一覧
- IANAによる文字コードの定義
- 文字コード表(コード対応表) 0x0-0x4
- 文字コード表(コード対応表) 0x5-0x6
- 文字コード表(コード対応表) 0x7-0x8
- 文字コード表(コード対応表) 0x9-0xA
- 文字コード表(コード対応表) 0xB-0xC
- 文字コード表(コード対応表) 0xD-0xF
- インターネット初期に日本に割り振られたIPアドレス一覧
- 画面解像度の一覧
- Perl互換の正規表現(PCRE)に関する仕様
- HTTP/1.0仕様書 日本語訳
- HTTP/1.0
- 文字コード表(EUC-JP) [12836/12836]
- 文字コード表(Unicode UTF-8 UTF-16) [21420/21420]
- 文字コード表(コード対応表) 0xF
- 文字コード表(コード対応表) 0xE
- 文字コード表(コード対応表) 0xD
- 文字コード表(コード対応表) 0xC
- 文字コード表(コード対応表) 0xB
- 文字コード表(コード対応表) 0xA
- 文字コード表(コード対応表) 0x9
- 文字コード表(コード対応表) 0x8
- 文字コード表(コード対応表) 0x7
- 文字コード表(コード対応表) 0x6
- 文字コード表(コード対応表) 0x5
- 文字コード表(コード対応表) 0x4
- 文字コード表(コード対応表) 0x3
- 文字コード表(コード対応表) 0x2
- 文字コード表(コード対応表) 0x1
- 文字コード表(コード対応表) 0x0
- 文字コード表(Unicode UTF-8 UTF-16) [14000/21420]
- Unicode文字のブロックの範囲
- 文字コード表(EUC-JP) [6000/12836]
- 文字コード表(JIS)
- 文字コード表(Shift-JIS)
- 文字コード表(Unicode UTF-8 UTF-16) [7000/21420]
- RFC
- 電車路線、駅の一覧
- Google Developers
- Rainmeter
- Git
- fail2ban
スポンサーリンク