Наибольший код Unicode и используемые кодировки символов Unicode - это две вещи.Согласно стандарту, самая высокая кодовая точка на самом деле равна 0x10ffff, но поэтому вам понадобится всего 21 бит, который легко помещается в 4 байта, даже при потере 11 битов!
Я предполагаю, что с вашим вопросом о 6 байтах вы имеете в виду6-байтовая последовательность utf-8, верно?Как уже отвечали другие, используя механизм utf-8, вы действительно можете иметь дело с 6-байтовыми последовательностями, вы даже можете иметь дело с 7-байтовыми последовательностями и даже с 8-байтовыми последовательностями.7-байтовая последовательность дает вам диапазон того, что могут предложить следующие байты, 6 x 6 бит = 36 бит, а 8-байтовая последовательность дает вам 7 x 6 бит = 42 бита.Вы могли бы справиться с этим, но это не разрешено, потому что в этом нет необходимости, максимальная кодовая точка равна 0x10ffff.
Также запрещено использовать более длинные последовательности, чем необходимо, как упомянул Hibou57.С utf-8 нужно всегда использовать самую короткую из возможных последовательностей, иначе она будет считаться недействительной!Конечно же, символ ASCII должен быть 7-битным однобайтовым.Во-вторых, 4-байтовая последовательность utf-8 дает вам 3 бита полезной нагрузки в начальном байте и 18 бит полезной нагрузки в следующих байтах, которые составляют 21 бит, и это соответствует вычислению суррогатов при использовании кодирования utf-16,Смещение 0x10000 вычитается из кодовой точки, а оставшиеся 20 битов попадают в область с высокой суррогатной нагрузкой, каждая из 10 битов.Третье и последнее, что в utf-8 не разрешается кодировать значения hi- или -lo-surrogate.Суррогаты - это не символы, а контейнеры для них, суррогаты могут появляться только в файлах с кодировкой utf-16, а не в файлах с кодировкой utf-8 или utf-32.