UTF-8 の エンコード方法

UTF-8は、UnicodeとASCIIコードを混在させるための規格です。
Unicodeでは、0x0000-0x007Fの文字コードは、 ASCIIコードの0x00-0x7Fと同じとなっていることを利用して変換します。
UTF-8では、ASCIIコードは、1バイトで表しますが、0x0800から0xFFFFまでのマルチバイト文字は、3バイトで表します。
UTF-8では、各文字の先頭ビットにより、文字の種類を簡単に判定できます。

1ビットめの値
0:制御コード、ASCII文字
1:マルチバイト文字
マルチバイト文字の2ビットめの値
0:先頭文字以外
1:先頭文字
マルチバイト文字の先頭文字の3ビットめの値
0:2バイト文字(0x0080-0x07FF)
1:3バイト文字以上(0x0800-0x0010FFFF)
3バイト以上のマルチバイト文字の先頭文字の4ビットめの値
0:3バイト文字(0x0800-0xFFFF)
1:4バイト文字(0x00010000-0x0010FFFF)
1バイト目 2バイト目 3バイト目 4バイト目 文字の種類
00-7F
0xxxxxxx
      制御コード
ASCII文字
C0-DF
110xxxxx
80-BF
10xxxxxx
    UCS-2マルチバイト文字
(0x0080-0x07FF)
E0-EF
1110xxxx
80-BF
10xxxxxx
80-BF
10xxxxxx
  UCS-2マルチバイト文字
(0x0800-0xFFFF)
F0-F7
11110xxx
80-BF
10xxxxxx
80-BF
10xxxxxx
80-BF
10xxxxxx
UCS-4マルチバイト文字
(0x00010000-0x0010FFFF)

上段は16進数、下段は2進数(x は 0 または 1)


Copyright (C)1995-2002 ASH multimedia lab.