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文字が表現するものを、表現しようと思えばできる。まあ、ほんと、そんなことやる意味はないけど。短く表現できるものを長く表現するのは無駄だし。
(表現できるものに、冗長な部分があるなあ、ぐらいかんがえたにすぎない。)