Почему в ASCII не поместились буквы с акцентами
Семь бит действительно позволяют записать 128 разных значений. Но ASCII не был таблицей, где каждое значение отводилось под букву: часть кодов предназначили для управляющих команд. Они не печатали знак, а помогали устройствам обрабатывать текст — например, обозначали конец строки или сигнализировали о передаче данных. Остальные значения покрывали латинские буквы без диакритики, цифры и знаки препинания, нужные для английского текста.
Поэтому символам вроде «é» или буквам кириллицы в исходной таблице места не нашлось. Это было не просто неудобство для набора: программа, получившая код, должна была знать, какому именно знаку он соответствует.
Как обходили ограничение
Один из простых обходных путей — заменять непривычные буквы ближайшими латинскими: так появлялись записи вроде «Moskva» вместо «Москва». Другой — использовать восьмой бит и расширенные таблицы символов. Но единой универсальной таблицы для всех языков не возникло: разные системы могли назначать одному и тому же числовому коду разные знаки.
Если текст читали не в той кодировке, буквы превращались в бессмысленный набор символов. Компьютеры при этом не «теряли» буквы сами по себе — отправитель и получатель просто по-разному истолковывали одни и те же числа.
Что изменил Unicode
Unicode устроен иначе: он задаёт общую систему идентификаторов для символов множества письменностей, а способ хранения этих значений определяет конкретная кодировка, например UTF‑8. В UTF‑8 первые 128 значений совпадают с ASCII, поэтому старый английский текст остаётся совместимым, а остальные символы можно представить последовательностями из нескольких байтов.
Из-за этой преемственности старые программы и форматы иногда по-прежнему ожидают ASCII или конкретную устаревшую кодировку. На практике это значит, что поддержка языка зависит не только от шрифта: система должна правильно сохранить и прочитать нужные коды.






