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