Я расширяю свой комментарий.
Юникод не является кодировкой.Нет смысла иметь размер для кодовой точки Unicode.Unicode - это отображение между кодовой точкой и семантическим именем (например, «LATIN CAPITAL LETTER A»).Вы можете выбрать свою собственную кодировку.
Изначально Unicode хотел быть универсальной кодировкой, которая бы вписывалась в 16-битную (то есть Unification японский / китайский).Как видите, это не удалось на этой цели.И второй момент (очень важный) - возможность конвертировать в Unicode и обратно без потери данных (это упрощает преобразование в Unicode: по одному инструменту за раз на любом слое).
Итак, естьБыли проблемы с тем, как расширить Unicode для поддержки более чем 16-битных, но в то же время, чтобы не сломать все программы Unicode.Идея заключалась в том, чтобы использовать суррогаты, чтобы программы, которые просто знают о 16-битном Unicode (UCS-2), все еще могли работать (и BTW python2, а Javascript знают только UCS-2, и они все еще работают хорошо. Язык не должен знатьчто кодовые точки Unicode могут иметь более 16 битов.
Суррогаты дают верхний предел фактического Unicode (поэтому не равны степени 2).
Позже был разработан UTF-8.характеристика (по конструкции): совместимость с ASCII (для 7-битных символов), кодирование всех кодовых точек (также> 16-битных) и возможность перехода в случайную позицию и быстрой синхронизации в месте начала символа.некоторого адресного пространства, поэтому текст не такой плотный, как может быть, но он гораздо более практичен (и быстро "прокручивает" файлы). Эти дополнительные данные (для синхронизации) сделали невозможным кодирование всех новых кодовых точек Unicode в 3байтов, с UTF-8.
Вы можете использовать UTF-24 (см. комментарий), но вы потеряете преимущество UFT-8, чтобы быть совместимым с ASCII, но такжеo с UTF-16 вы часто имеете всего 2 байта (а не 4).
Помните: кодовая точка Unicode выше 16 бит более редкая: древние языки, лучшее представление (семантическое) существующих глифов илиновые смайлики (которые, мы надеемся, не заполняют весь длинный текст только смайликами).Таким образом, утилита из 3 байтов (пока) не нужна.Возможно, если инопланетяне придут на Землю, и нам следует писать их новыми языковыми символами, мы будем использовать в основном код Unicode с длиной выше 16 бит.Думаю, не скоро это случится.