Почему Юникод используется в последних операционных системах вместо ASCII?
3 ответа
Потому что он обеспечивает простое и равномерное отображение всех символов, используемых в настоящее время, без необходимости переключения кодовых страниц. Кроме того, вы, вероятно, имеете в виду EASCII или ANSI (или некоторую другую производную с 256 символами).
Вот вам пример: использование русского и чешского языков в одной и той же системе было бы невозможно некоторое время назад (т.е. без Unicode), потому что кодовые страницы могли бы конфликтовать. Таким образом, имена файлов (среди других объектов) будут отображаться неправильно для любого из них, в зависимости от выбранной кодовой страницы.
Юникод смягчает это и добавляет некоторые другие концепции. Для хорошего обзора я могу порекомендовать "Unicode Explained" от O'Reilly. Кроме того, он написан кем-то, кому небезразлична интернационализация, чего нельзя сказать - даже сейчас - о многих носителях английского языка, поскольку ASCII (0..127) может использоваться для покрытия всех предложений на английском языке, и проблем с кодовыми страницами не существует, даже когда используя EASCII, если вы придерживаетесь простых латинских символов.
Хотя реализации различаются (Debian использует UTF-8, в то время как более новая Windows использует UTF-16, а более старая Windows-основанная Windows использует UCS-2, подмножество UTF-16), Unicode снимает все ограничения, налагаемые кодовыми страницами, что убийца аргумент для его использования.
Если вы заинтересованы в этом для программирования, взгляните на ICU.
Краткий ответ: потому что Unicode поддерживает больше символов, чем ASCII.
Из Википедии:
Unicode предназначен для удовлетворения потребности в работоспособном и надежном кодировании текста в мире. Unicode можно грубо описать как «широкополосный ASCII», который был растянут до 16 бит, чтобы охватить символы всех живых языков мира. В правильно спроектированной конструкции 16 битов на символ более чем достаточно для этой цели.
UTF-8 был разработан с нуля, чтобы быть обратно совместимым с ASCII. Мгновенно любая 7-битная система ASCII мгновенно стала базовой системой UTF-8 (хотя и не обязательно обрабатывающей более 127 символов базовой ASCII).
UTF-8 расширяет систему ASCII, позволяя соединять несколько байтов в один символ. Это позволяет компьютерам обрабатывать многие сотни тысяч различных символов, цель которых состоит в том, чтобы иметь возможность объединить все символы всех алфавитов всех языков в одну большую таблицу символов.
http://en.wikipedia.org/wiki/UTF-8 подробно объясняет, как все это работает.