code point:
0x 0000_0000                           0b 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx

   code point                             bytes
0x 0000_0000 - 0000_007F (  7 bits ) : 0b 0xxxxxxx
0x 0000_0080 - 0000_07FF ( 11 bits ) : 0b 110xxxxx 10xxxxxx
0x 0000_0800 - 0000_FFFF ( 16 bits ) : 0b 1110xxxx 10xxxxxx 10xxxxxx
0x 0001_0000 - 0010_FFFF ( 21 bits ) : 0b 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
0x 0001_0000 - 001F_FFFF ( 21 bits ) : 0b 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
0x 0020_0000 - 03FF_FFFF ( 26 bits ) : 0b 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
0x 0400_0000 - 7FFF_FFFF ( 31 bits ) : 0b 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx