Unicode - UTF8

UTF8が表現できるものの範囲とかすぐ忘れる……。
ひらがなや漢字はUTF8で表すと何文字か、とか、UTF16でU+10000〜U+10FFFFはUTF8で何文字か、とか、覚えては忘れしている。すげーよ、おれの記憶力……orz。

UCS2 or UCS4 UTF8 自分メモ
0000-007F 0xxxxxxx 007Fまでは7bit。
ASCII左反面。
0080-07FF 110xxxxx 10xxxxxx 07FFまでは11bit。
ギリシャ文字だの、キリル文字だのここにある。俺はあんま使わない文字だけど。
0800-FFFF 1110xxxx 10xxxxxx 10xxxxxx FFFFまでは16bit。
日本語のひらがな、カタカナ、漢字やらの多くは、この範囲に入っている。BMPで考えたらこの範囲だけ、か。
0001 0000-001F FFFF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx 001F FFFFまでは21bit。
UTF16の0001 0000-0010 FFFFは、この範囲に含まれる。
0020 0000-03FF FFFF 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 03FF FFFFまでは26bit。
0400 0000-7FFF FFFF 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 7FFF FFFFまでは31bit。

自分メモは、次みたときに色々思い出せるように。

仕様からはずれるけど、"E0 80 80"は"0000"に、"FC 80 80 80 80 80"は、"0000 0000"になる。長いUTF8文字は、短いUTF8文字が表現するものを、表現しようと思えばできる。まあ、ほんと、そんなことやる意味はないけど。短く表現できるものを長く表現するのは無駄だし。
(表現できるものに、冗長な部分があるなあ、ぐらいかんがえたにすぎない。)