根据Wikipedia的文章,UTF-8具有以下格式:
首码尾码字节字节1字节2字节3字节4 点点使用 U + 0000 U + 007F 1 0xxxxxxx U + 0080 U + 07FF 2 110xxxxx 10xxxxxx U + 0800 U + FFFF 3 1110xxxx 10xxxxxx 10xxxxxx U + 10000 U + 1FFFFF 4 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx x表示该位用于选择代码点。
这在每个连续字节上浪费了两位,而在第一个字节上浪费了一位。为什么未对UTF-8进行以下编码?
首码尾码字节字节1字节2字节3 点点使用 U + 0000 U + 007F 1 0xxxxxxx U + 0080 U + 3FFF 2 10xxxxxx xxxxxxxx U + 0800 U + 1FFFFF 3 110xxxxx xxxxxxxx xxxxxxxx
当代码点超出基本多语言平面或代码点在[U + 800,U + 3FFF]范围内时,它将节省一个字节。
为什么未以更有效的方式对UTF-8进行编码?