Большая часть действительно ранней работы была проделана с 5-битными кодами бодо, но они быстро стали весьма ограничивающими (всего 32 возможных символа, поэтому в основном только заглавные буквы и несколько знаков препинания, но недостаточно «пробела» для цифр) ,
Оттуда довольно много машин перешли на 6-битные символы. Это было все еще довольно неадекватно - если вы хотели использовать заглавные и строчные (английские) буквы и цифры, оставалось только два символа для пунктуации, так что у большинства все еще был только один регистр букв в наборе символов.
ASCII определил 7-битный набор символов. Это было «достаточно хорошо» для многих применений в течение долгого времени и послужило основой для большинства новых наборов символов (ISO 646, ISO 8859, Unicode, ISO 10646 и т. Д.)
Бинарные компьютеры побуждают дизайнеров делать размеры в два раза больше. Так как «стандартный» набор символов в любом случае требовал 7 бит, добавить еще один бит, чтобы получить степень 2, было не так уж и сложно (к тому времени хранилище стало достаточно дешевым, чтобы «тратить» немного на большинство символов) было также более приемлемым).
С тех пор наборы символов перешли на 16 и 32 бита, но большинство обычных компьютеров в значительной степени основаны на оригинальном IBM PC. Опять же, достаточно рынка достаточно удовлетворено 8-битными символами, и даже если бы компьютер не достиг нынешнего уровня доминирования, я не уверен, что все все равно сделают все с более крупными символами.
Я также должен добавить, что рынок сильно изменился. На текущем рынке размер символов меньше определяется аппаратным обеспечением, чем программным обеспечением. Windows, Java и т. Д. Давно перешли на 16-битные символы.
Теперь помеха в поддержке 16- или 32-разрядных символов лишь минимальна из-за трудностей, присущих самим 16- или 32-разрядным символам, и в значительной степени из-за сложности поддержки i18n в целом. В ASCII (например) определение того, является ли буква заглавной или строчной, или преобразование между ними, является невероятно тривиальным. В полном Unicode / ISO 10646 это в основном неописуемо сложно (до такой степени, что стандарты даже не пытаются - они дают таблицы, а не описания). Затем вы добавляете тот факт, что для некоторых языков / наборов символов даже основная идея верхнего / нижнего регистра не применима. Затем вы добавляете тот факт, что даже отображение символов в некоторых из них намного сложнее.
Это все достаточно сложно, что подавляющее большинство программного обеспечения даже не пытается. Ситуация медленно улучшается, но медленно это оперативное слово.