Согласно статье в Википедии , 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 не кодируется более эффективно?