![Unicode против ASCII](https://rvso.com/image/1267863/Unicode%20%D0%BF%D1%80%D0%BE%D1%82%D0%B8%D0%B2%20ASCII%20.png)
Почему в новейших операционных системах используется Unicode вместо ASCII?
решение1
Потому что он обеспечивает простое и единообразное отображение всех используемых в настоящее время символов без необходимости переключения кодовых страниц. Кроме того, вы, вероятно, имеете в виду EASCII или ANSI (или какой-то другой производный с 256 символами).
Приведу пример: использование русского и чешского языков в одной системе было бы невозможно некоторое время назад (т. е. без Unicode), поскольку кодовые страницы конфликтовали бы. Поэтому имена файлов (среди других объектов) отображались бы неправильно для любого из них, в зависимости от текущей выбранной кодовой страницы.
Unicode смягчает это и добавляет некоторые другие концепции. Для всестороннего хорошего обзора я могу порекомендовать "Unicode Explained" от O'Reilly. Кроме того, он написан человеком, который заботится об интернационализации, чего нельзя сказать — даже сейчас — о многих носителях английского языка, поскольку ASCII (0..127) может использоваться для покрытия всех английских предложений, и не возникает никаких проблем с кодовыми страницами, даже при использовании EASCII, пока вы придерживаетесь простых латинских символов.
Хотя реализации различаются (Debian использует UTF-8, в то время как более новая Windows использует UTF-16, а более старая Windows на базе NT использовала UCS-2, подмножество UTF-16), Unicode снимает все ограничения, накладываемые кодовыми страницами, чтоtheвесомый аргумент в пользу его использования.
Если вас это интересует с точки зрения программирования, обратите внимание на ICU.
решение2
Короткий ответ: потому что Unicode поддерживает больше символов, чем ASCII.
ОтВикипедия:
Unicode призван удовлетворить потребность в работоспособной, надежной всемирной кодировке текста. Unicode можно грубо описать как «широкоформатный ASCII», который был растянут до 16 бит, чтобы охватить символы всех живых языков мира. В правильно спроектированном дизайне 16 бит на символ более чем достаточно для этой цели.
решение3
UTF-8 был разработан с нуля для обратной совместимости с ASCII. Мгновенно любая 7-битная система ASCII мгновенно становилась базовой системой UTF-8 (хотя и не обязательно обрабатывающей более 127 символов базовой ASCII).
UTF-8 расширяет систему ASCII, позволяя объединять несколько байтов для создания одного символа. Это позволяет компьютерам обрабатывать сотни тысяч различных символов, цель которых — иметь возможность иметь все символы всех алфавитов всех языков вместе в одной большой таблице символов.
http://en.wikipedia.org/wiki/UTF-8подробно объясняет, как все это работает.