UTF-32単語

ユーティーエフサンジュウニ
1.4千文字の記事
  • 0
  • 0pt
掲示板へ

UTF-32とは、Unicode文字符号化形式/文字符号化方式の一つである。

概要

UTF-32とは、Unicode文字符号化形式/文字符号化方式の一つで、Unicodeの21ビットを表現するのに32ビット(=4バイト)あれば十分だろうということで、全て4バイト固定長で表現する方式である。ただ、異体字セレクタなど、前の文字と結合して用いるものがあるので、全な1単位1文字は実現できていない。

UTF-8なら1バイトで表現できる英数字にも4バイトを消費する反面、コードポイント数*4バイトが長さに一致するので、何番定された文字に高速にアクセスできるという利点がある。

Unicodeは21ビットまでなので、先頭のバイト(厳密には11ビット)は常に0になり、メモリ駄が多いので使用される場面は少ない。

Unicodeの符号位置を表記するのにU+の後に16進数を続ける書式があるが、UTF-32ではこの16進数がそのまま格納される。

バイトオーダーマーク

UTF-16と同様である。UTF-32BE, UTF-32LEではバイトオーダーマークは使用禁止。無印 UTF-32では、00 00 FE FFビッグエンディアンFF FE 00 00はリトルエンディアン省略されるとビッグエンディアンと解釈される。

また、Unicodeの各面におけるFF FEで終わる符号位置U+?FFFE(?は0-10(16))はUTF-32でリトルエンディアンになると、FE FF 0x 00となり、UTF-16のBOMありビッグエンディアンと区別が難しくなるため使用しないことになっている。

関連項目

コラム: UTF-24?

Unicode文字は21ビットで表現可である。8ビット(=1バイト)単位になるのは仕方がないとしても、24ビット(=3バイト)あれば十分なはずで、32ビット(=4バイト)もいらないのではないだろうか。

というようなことは2007年既に検討済みexitである。

当時流の32ビットコンピューターではデータのやり取りを行う単位が32ビット(1つのメモリアドレスに保持するデータは32ビット)であった。24ビットという中途半端な単位では、下記の2文字のように、1文字3バイトが1バイト+2バイトといった形で2つのアドレスに分かれて保管されてしまう。

アドレス単位 1 2 3
バイト単位 1 2 3 4 5 6 7 8 9 10 11 12
文字単位 1 2 3 4

2つのアドレスに分かれて保管された場合、ランダムアクセス読み出す時にも2つのアドレスへのアクセス(+ 有効部分のバイトデータ切り出し + 結合)が必要となり、1メモリアドレスアクセスするだけで読み出せるUTF-32にべて倍以上の時間が必要になる。

固定長方式はアクセス速度向上のためならメモリ容量の駄をいとわないようなシビアな局面での使用が想定されるため、格段に速度が低下するUTF-24は不採用になったようだ。

この点、UTF-8は可変長なので1文字データアドレス界をまたぐのは日常茶飯事なのだが、UTF-8そもそも可変長ゆえにアドレス定してのランダムアクセスができないので、こういう意味でのパフォーマンス向上には意味がないと言える。

【スポンサーリンク】

  • 0
  • 0pt
記事編集 編集履歴を閲覧

ニコニ広告で宣伝された記事

ウマ娘 プリティーダービー (単) 記事と一緒に動画もおすすめ!
提供: eyeagate
もっと見る

この記事の掲示板に最近描かれたお絵カキコ

お絵カキコがありません

この記事の掲示板に最近投稿されたピコカキコ

ピコカキコがありません

UTF-32

まだ掲示板に書き込みがありません…以下のようなことを書き込んでもらえると嬉しいでーす!

  • 記事を編集した人の応援(応援されると喜びます)
  • 記事に追加して欲しい動画・商品・記述についての情報提供(具体的だと嬉しいです)
  • UTF-32についての雑談(ダラダラとゆるい感じで)

書き込みを行うには、ニコニコのアカウントが必要です!