目次

UTF-8の仕組み

バイトの値から素性を読む

UTF-8は1~4バイト(初期の定義では6バイトまで)の可変長コードです。

それぞれの1バイトの値で、それが文字の最初のバイトであるか、2バイト目以降のバイトであるかがわかるようになっています。

コード カテゴリ 備考
00-7x 1バイト文字 US-ASCIIにおなじ
8x,9x,Ax,Bx 多バイト文字の2バイト目以降
Cx,Dx 2バイト文字の開始バイト
Ex 3バイト文字の開始バイト 漢字はおおむねこれで開始
Fx 4バイト以上の文字の開始バイト F0-F7は4バイト、(F8-FBは5バイト、FC-FDは6バイト)

UnicodeからUTF-8への換算

U+XXXX と表されるUnicodeからUTF-8への換算表です。もちろん逆も可能。

ビットの状態にしてから切り張りをしています。

Unicode範囲(21ビット) その0でない部分の二進表現 UTF-8 の二進表現
(1) U+ 00 7Fまで 0ppp pppp 0ppp pppp
(2) U+ 07 FFまで 0000 0sss pppp pppp 110s sspp 10pp pppp
(3) U+ FF FFまで ssss ssss pppp pppp 1110 ssss 10ss sspp 10pp pppp
(4) U+ 1F FF FFまで t tttt ssss ssss pppp pppp 1111 0ttt 10tt ssss 10ss sspp 10pp pppp

サロケートペアを使っている時には21ビットの表現に戻してから換算します。


聖愛中学高等学校
http://www.seiai.ed.jp/
Last Modified:2009/08/09