|
UTF-16 (UCS/Unicode Transformation Format 16) とは、UnicodeおよびISO/IEC 10646の、符号化形式および符号化スキーム(文字符号化方式を参照)のひとつである。UTFは、UnicodeではUnicode Transformation Formatの略、ISO/IEC 10646ではUCS Transformation Formatの略とされる。ISO/IEC 10646での正式名称はUCS Transformation Format for 16 Planes of Group 00である。Unicodeでは、UTF-16が正式名称である。 UTF-16では、1文字が、16ビットの符号単位が1つまたは2つで符号化される。これが「-16」の名の由来である。基本多言語面(BMP)内の文字は、符号単位1つの16ビットで表される(ビッグエンディアンならISO/IEC 10646のUCS-2と互換である)。BMP以外の文字は、符号単位2つの32ビットで表される。なお、UTF-16は2バイトコードだと誤解されることがあるが、このように4バイトのこともあるため間違いである。 Unicodeにおいては、厳密には、文字符号化形式()の1つの名称であり、かつ、UTF-16符号化形式のための文字符号化スキーム()の1つの名称でもある。UTF-16符号化形式のための文字符号化スキームには、UTF-16の他にUTF-16BE、UTF-16LEがある。 ==UTF-16符号化形式== UTF-16では、Unicodeの符号位置U+0000..U+10FFFFを、16ビット符号なし整数を符号単位とした符号単位列で表す。符号単位列は1つまたは2つの符号単位からなる。つまり、合計は16ビットまたは32ビットである。 BMPに含まれるU+0000..U+D7FFとU+E000..U+FFFFは、そのまま符号単位1つで表す。 BMP以外のU+10000..U+10FFFFは、表のようにビットを配分して、符号単位2つで表す。 このとき使われる、U+D800 ~ U+DFFF の符号位置を、代用符号位置(Surrogate Code Point)と呼び、BMP外の1つの符号位置を表す連続した2つの代用符号位置のペアをサロゲートペアと呼ぶ。代用符号位置に使うため、BMPのこの領域には文字が収録されておらず、UTF-16以外の符号化スキームでは通常は使用されない。 Unicodeの符号位置の最大がU+10FFFFなのは、それがUTF-16で表せる最大だからである。また、ISO/IEC 10646でも、U+110000以降は、文字が割り当てられることは無いということに、現在はされている。 UTF-16符号化形式は、Java(J2SE 5.0以上)において文字の内部表現であるchar型(16ビット符号なし整数型)として、またWindows XPなどのOSにおけるプログラムではワイド文字として実装される。 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「UTF-16」の詳細全文を読む スポンサード リンク
|