UTF-16 【UCS/Unicode Transformation Format 16】 UTF-16BE / UTF-16LE

概要

UTF-16(UCS/Unicode Transformation Format 16)とは、UnicodeおよびISO/IEC 10646で規定された文字符号化方式(文字エンコーディング)の一つで、2バイト(16ビット)の固定長コードを表現する符号化方式。

U+0000からU+FFFFの基本多言語面BMP)収録文字についてはコードポイントをそのまま文字符号とする。U+10000以降の拡張領域に収録された文字はサロゲートペアの仕組みを用い、U+D800~U+DBFFから一つ、U+DC00~U+DFFFから一つを選んで組み合わせ、4バイトで表現する。

一文字を連続した複数バイトの整数値で表現するため、上位バイトが先頭側か末尾側かによって異なるバイト列となる。上位バイトが先頭側になるように並べる方式をUTF-16BE(Big Endian)、上位バイトが末尾側になるように並べる方式をUTF-16LE(Little Endian)という。

文字コードの指定などでバイト順を伝達できない場合、文書やデータの先頭にバイト順を示すBOMByte Order Mark)と呼ばれる符号を記載して指定するよう規定されており、UTF-16BEの場合は16進数4桁で「FE FF」、UTF-16LEの場合は「FF FE」と記載する。

UTF-32

一文字あたり4バイト32ビット)の固定長コードを表現する符号化方式で、単純にU+0000からU+10FFFFまでの各文字のコードポイントをそのまま文字符号とする方式を「UTF-32」という。

最も単純な表現形式で、文字よって長さが異なることがないためソフトウェアで処理しやすい。しかし、どんな文字でも4バイトで表現するためデータ量が多く、特にASCIIなら1バイトで収まる英数字が多い場合には不利となる。

UTF-16同様、文字コードの指定などでバイト順を伝達できない場合はデータの先頭に4バイトBOMを記す。BOMが「FF FE 00 00」ならリトルエンディアン、「00 00 FE FF」ならビッグエンディアンである。

は主にデータ量の多さが敬遠され、データの保存・交換用としてはほとんど用いられることはないが、ソフトウェアが文字データの処理のために用いる内部表現として利用されることがある。入出力UTF-8など他の形式でも内部的にはUTF-32に変換して扱っている場合もある。

なお、Unicode文字集合であるUCS-2拡張した文字集合として31ビットUCS-4を策定する構想があり、UTF-32はその符号化方式として有力だった。UCS-4はコードポイントを先頭が0に固定された32ビット(4バイト)ので表すもので、UCS-2を丸々取り込んで更に多くの文字を収録する予定だったが、UCS-2を超える範囲への拡張は断念され、UTF-32の存在意義も低下した。

(2023.3.10更新)

他の辞典による解説 (外部サイト)

この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。
ホーム画面への追加方法
1.ブラウザの 共有ボタンのアイコン 共有ボタンをタップ
2.メニューの「ホーム画面に追加」をタップ
閉じる