Відповідно до статті 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 не кодується більш ефективно?