Unicode против ASCII

Unicode против ASCII

Почему в новейших операционных системах используется 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подробно объясняет, как все это работает.

Связанный контент