Unicode文字集合にUTF-8文字コード化規則を適用する
UTF-8(8ビット Unicode 変換形式) は、Unicode 文字セットの全文字を表現できる可変長符号化方式です。符号化のルールは次の通りです。
- ASCII文字(U+0000からU+007F)は、UTF-8では1バイトでエンコードされ、先頭のビットが0、残りの7ビットに文字のUnicodeコードが置かれます。
- 非ASCII文字はUTF-8で複数のバイトでエンコードされる。そのルールは以下の通りである。
- 0080~07FF の Unicode コード値の文字は、UTF-8 では 2 バイトで符号化されます。符号化方式は、110xxxxx 10yyyyyy で、先頭の 5 ビット 110 は 2 バイトを使用することを表し、残りの 6 ビットは文字の Unicode コード値の上位 5 ビットを表します。2 番目のバイトの上位 2 ビット 10 は、残りの 6 ビットが文字の Unicode コード値の下位 6 ビットを表すことを表します。
- U+0800 から U+FFFF の Unicode コードの文字は、UTF-8 では3バイトで構成され、1110xxxx 10yyyyyy 10zzzzzz のフォーマットで符号化されます。ここで、上位4ビットは 1110 で3バイト使用を示し、その後ろの4ビットは文字の Unicode コードの上位4ビットを表します。2番目のバイトの上位2ビットは 10 で、その後ろの6ビットは文字の Unicode コードの中間6ビットを表し、3番目のバイトの上位2ビットは 10 で、その後ろの6ビットは文字の Unicode コードの下位6ビットを表します。
- Unicodeのコードが大きくなると、UTF-8ではより多くのバイト数で符号化されますが、同様に規則性があります。
UTF-8はこの手法によってUnicode文字集合のあらゆる文字を表現でき、さらにASCII文字についてはASCIIコードとバイト数が完全に一致するため、ASCIIコードとの互換性を保持しています。