|
UTF-8(ユーティーエフはち、ユーティーエフエイト)はISO/IEC 10646 (UCS) とUnicodeで使える8ビット符号単位の文字符号化形式及び文字符号化スキーム。 正式名称は、ISO/IEC 10646では “UCS Transformation Format 8”、Unicodeでは “Unicode Transformation Format-8” という。両者はISO/IEC 10646とUnicodeのコード重複範囲で互換性がある。RFCにも仕様がある〔RFC 3629 UTF-8, a transformation format of ISO 10646〕。 2バイト目以降に「/」などのASCII文字が現れないように工夫されていることから、UTF-FSS (File System Safe) ともいわれる。旧名称はUTF-2。 データ交換方式、ファイル形式として、一般的にUTF-8は使われる傾向にある。 当初は、ベル研究所においてPlan 9で用いるエンコードとして、ロブ・パイクによる設計指針のもと、ケン・トンプソンによって考案された〔RFC 3629 Page-3 〕〔Rob Pike's UTF-8 history 〕。 == エンコード体系 == ASCII文字と互換性を持たせるために、ASCIIと同じ部分は1バイト、その他の部分を2-6バイトで符号化する。4バイトのシーケンスでは21bit (0x1FFFFF) まで表現することができるが、Unicodeの範囲外となる17面以降を表すもの(U+10FFFFより大きなもの)は受け付けない。また5-6バイトの表現は、ISO/IEC 10646による定義〔ISO/IEC 10646:2003 Information technology -- Universal Multiple-Octet Coded Character Set (UCS)〕とIETFによるかつての定義〔RFC 2279 UTF-8, a transformation format of ISO 10646〕で、Unicodeの範囲外を符号化するためにのみ使用するが、Unicodeによる定義〔The Unicode Standard, Version 5.2 〕とIETFによる最新の定義〔RFC 3629 UTF-8, a transformation format of ISO 10646〕では、5-6バイトの表現は不正なシーケンスである。 ビットパターンは以下のようになっている。 Unicodeの符号位置を2進表記したものを、上のビットパターンのx, yに右詰めに格納する。最短のバイト数で符号化するため、yの部分には最低1回は1が出現する。符号化されたバイト列は、バイト順に関わらず左から順に出力する。これにより4バイトで21bit、6バイトで31bitまで表現することができる。 1バイト目の先頭の連続するビット "1"(その後にビット "0" が1つ付く)の個数で、その文字のバイト数がわかるようになっている。また、2バイト目以降はビットパターン "10" で始まり、1バイト目と2バイト目以降では値の範囲が重ならないので、文字境界を確実に判定できる。すなわち、任意のバイトの先頭ビットが "0" なら1バイト文字、"10" なら2バイト以上の文字の2番目以降のバイト、"110" なら2バイト文字の先頭バイト、"1110" なら3バイト文字の先頭バイト、"11110" なら4バイト文字の先頭バイトであると判定できる。 7バイト以上の文字は規定されないため、 0xFE、0xFF は使用されない。このため、バイト順マーク (BOM) に0xFEと0xFF を使用するUTF-16やUTF-32が、UTF-8と混同されることはない。抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「UTF-8」の詳細全文を読む 英語版ウィキペディアに対照対訳語「 UTF-8 」があります。 スポンサード リンク
|