■Unicodeとは
Unicodeは全世界共通で使えるように、世界中の文字を収録する文字コード規格したもの。 Unicodeでは、複数のエンコーディングスキームが定義されています。 この中でよく使われるのが、UTF-16, UTF-8, UTF-32です。 Unicodeと一口に言っても、その符号化の方法は複数あります。 Unicodeに収録されている文字を文字表の番号で明示する場合、番号の冒頭にU+を付与します。■UTF-8
ASCIIの文字をそのままUnicodeで使用可能にするために制定されました。 そのため、ASCII相当部分は1バイトで、その他の部分は2~4バイトという可変長の符号化方式となっています (漢字はBMP部分は3バイト、拡張部分は4バイトになります)。 LinuxやMac OS Xで標準文字符号化方式として採用され、また、インターネット上でもっともよく使われるUnicode系の符号化方式■UTF-16
Unicode収録文字のうち、BMP領域に割り当てられているものを16ビット(2オクテット)で、 その他の領域に収録されている文字を、16ビット2つ分の情報量(4オクテット)で表現する(サロゲートペアと呼びます)方法になります。 Windows XPやVISTAの内部処理で使用されます。そのため、文字種によって1文字辺りのデータ量が異なる特徴を持っています。 但し、UTF-16の符号化方式として、UTF-16, UTF-16BE(ビッグエンディアン:2オクテットの内、上位の1オクテットから符号化する方法), UTF-16LE(リトルエンディアン2オクテットの内、下位の1オクテットから符号化する方法)の三種類があります。■UTF-32
一文字を32ビット固定で符号化する方式です。 UTF-32もUTF-16と同様に、ビッグエンディアンとリトルエンディアンが存在します。 アプリケーションソフトでは余り使われませんが、固定長という構造の単純さを生かした分野(データベースなど)で使われています。 Unicodeは、以下の異なる処理単位に分かれる 書記素クラスター: ユーザーが文字として認識する単位。フォントレンダリングや文字の削除/選択にはこの単位での処理が必要 コードポイント: Unicodeが値を定めている文字の単位 符号化: 符号化の方式(UTF-16やUTF-8)によって、保存や通信の際に必要となるデータ量が変わる 書記素クラスター Unicodeのコードポイントを割り当てられている文字の中には、単独では意味をなさず、他の文字と結合して使うものがある。冒頭の概要説明でも述べたが、ユーザーはそれぞれの文字ではなく、結合結果を1文字と認識する。この複数のコードポイントで形成される単位を書記素クラスター