Что такое кодировки символов, такие как ANSI и Unicode, и чем они отличаются?

ASCII, UTF-8, ISO-8859 … Возможно, вы видели этих странных прозвищ, плавающих вокруг, но что они на самом деле означают? Продолжайте читать, пока мы объясняем, что такое кодировка символов и как эти аббревиатуры относятся к простому тексту, который мы видим на экране.

Фундаментальные строительные блоки

Когда мы говорим о письменном языке, мы говорим о том, что буквы являются строительными блоками слов, которые затем строят предложения, абзацы и так далее. Буквы – это символы, которые представляют звуки. Когда вы говорите о языке, вы говорите о группах звуков, которые объединяются, образуя какое-то значение. Каждая языковая система имеет сложный набор правил и определений, которые управляют этими значениями. Если у вас есть слово, оно бесполезно, если вы не знаете, на каком оно языке, и не используете его с другими людьми, которые говорят на этом языке.

(Сравнение сценариев Гранта, Тулу и Малаялам, изображение из Википедии)

В мире компьютеров мы используем термин «персонаж». Символ – это своего рода абстрактное понятие, определяемое конкретными параметрами, но оно является фундаментальной единицей значения. Латиница «А» – это не то же самое, что греческая «альфа» или арабская «алиф», потому что они имеют разные контексты – они из разных языков и имеют немного разные произношения – поэтому мы можем сказать, что это разные символы. Визуальное представление символа называется «глиф», а различные наборы символов называются шрифтами. Группы персонажей принадлежат «сету» или «репертуару».

Когда вы печатаете абзац и меняете шрифт, вы не изменяете фонетические значения букв, вы меняете их внешний вид. Это просто косметика (но не маловажно!). Некоторые языки, такие как древнеегипетский и китайский, имеют идеограммы; они представляют собой целые идеи, а не звуки, и их произношение может изменяться во времени и на расстоянии. Если вы заменяете один символ другим, вы заменяете идею. Это больше, чем просто смена букв, это смена идеограммы.

Кодировка символов

(Изображение из Википедии)

Когда вы печатаете что-то на клавиатуре или загружаете файл, как компьютер узнает, что отображать? Вот для чего нужна кодировка символов. Текст на вашем компьютере – это не буквы, а набор парных буквенно-цифровых значений. Кодировка символов действует как ключ, для которого значения соответствуют каким символам, очень похоже на то, как орфография диктует, какие звуки соответствуют каким буквам. Азбука Морзе – это своего рода кодировка символов. Это объясняет, как группы длинных и коротких единиц, таких как гудки, представляют символы. В азбуке Морзе это всего лишь английские буквы, цифры и точки. Существует много компьютерных кодировок символов, которые переводят в буквы, цифры, знаки ударения, знаки пунктуации, международные символы и так далее.

Часто по этой теме также используется термин «кодовые страницы». По сути, они представляют собой кодировки символов, используемые определенными компаниями, часто с небольшими изменениями. Например, кодовая страница Windows 1252 (ранее известная как ANSI 1252) является модифицированной формой ISO-8859-1. В основном они используются в качестве внутренней системы для обозначения стандартных и модифицированных кодировок символов, характерных для тех же систем. С самого начала кодирование символов не было столь важным, потому что компьютеры не общались друг с другом. В связи с тем, что Интернет становится все более популярным и общение становится все более распространенным явлением, он становится все более важным в нашей повседневной жизни, и мы даже не осознаем этого.

Много разных типов

(Изображение из Сары Сосиак)

Существует множество различных кодировок символов, и для этого есть множество причин. Какую кодировку вы выберете, зависит от ваших потребностей. Если вы общаетесь на русском языке, имеет смысл использовать кодировку символов, которая хорошо поддерживает кириллицу. Если вы общаетесь на корейском языке, то вам нужно что-то, что хорошо отражает хангыль и ханджу. Если вы математик, то вам нужно что-то, что хорошо отображает все научные и математические символы, а также греческие и латинские глифы. Если вы шутник, возможно, вам пригодится перевернутый текст. И если вы хотите, чтобы все эти типы документов просматривались любым конкретным человеком, вам нужна кодировка, которая является довольно распространенной и легко доступной.

Давайте посмотрим на некоторые из наиболее распространенных.

(Выдержка из таблицы ASCII, изображение с asciitable.com)

  • ASCII . Американский стандартный код для обмена информацией является одной из старых кодировок символов.Первоначально он был разработан на основе телеграфных кодов и развивался с течением времени, чтобы включать больше символов и некоторые устаревшие непечатные контрольные символы. Это, вероятно, так же просто, как вы можете получить с точки зрения современных систем, так как он ограничен латинским алфавитом без акцентированных символов. Его 7-битное кодирование позволяет использовать только 128 символов, поэтому в мире существует несколько неофициальных вариантов.
  • ISO-8859 . Наиболее широко используемая группа кодировок символов Международной организации по стандартизации – это номер 8859. Каждая конкретная кодировка обозначается номером, который часто начинается с префикса, например описательного имени. ISO-8859-3 (Latin-3), ISO-8859-6 (Латинский/Арабский). Это расширенный набор ASCII, означающий, что первые 128 значений в кодировке совпадают с ASCII. Однако он 8-разрядный и допускает 256 символов, поэтому он строится оттуда и включает в себя гораздо более широкий массив символов, причем каждая конкретная кодировка фокусируется на различном наборе критериев. Латиница-1 включала в себя кучу акцентированных букв и символов, но позже была заменена пересмотренным набором под названием Латиница-9, который включает обновленные глифы, такие как символ евро.

(Выдержка из тибетского сценария, Unicode v4, с сайта unicode.org)

  • Юникод . Этот стандарт кодирования ориентирован на универсальность. В настоящее время он включает в себя 93 сценария, организованных в несколько блоков, и многие другие находятся в разработке. Юникод работает иначе, чем другие наборы символов, поскольку вместо непосредственного кодирования глифа каждое значение направляется дальше к «кодовой точке». Это шестнадцатеричные значения, соответствующие символам, но сами глифы предоставляются программой отдельным способом. , например, ваш веб-браузер. Эти кодовые точки обычно изображаются следующим образом: U + 0040 (что переводится как «@»). Конкретными кодировками по стандарту Unicode являются UTF-8 и UTF-16. UTF-8 пытается обеспечить максимальную совместимость с ASCII. Он 8-разрядный, но допускает все символы с помощью механизма подстановки и нескольких пар значений на символ. UTF-16 предлагает отличную совместимость с ASCII для более полной 16-битной совместимости со стандартом.
  • ISO-10646 . Это не фактическая кодировка, а набор символов Unicode, стандартизированный ISO. Это в основном важно, потому что это репертуар символов, используемый HTML. Некоторые из более продвинутых функций, предоставляемых Юникодом, которые позволяют сопоставлять и писать справа налево вместе с сценариями слева направо, отсутствуют. Тем не менее, он работает очень хорошо для использования в Интернете, поскольку он позволяет использовать широкий спектр сценариев и позволяет браузеру интерпретировать глифы. Это делает локализацию несколько проще.

Какую кодировку я должен использовать?

Ну, ASCII работает для большинства носителей английского языка, но не для многих других. Чаще вы будете видеть ISO-8859-1, который работает для большинства западноевропейских языков. Другие версии ISO-8859 работают для кириллицы, арабского, греческого или других специфических шрифтов. Однако если вы хотите отобразить несколько сценариев в одном документе или на одной веб-странице, UTF-8 обеспечивает лучшую совместимость. Это также очень хорошо работает для людей, которые используют правильные знаки препинания, математические символы или символы не по манере, такие как квадраты и флажки.

(Несколько языков в одном документе, снимок экрана gujaratsamachar.com)

Однако у каждого сета есть свои недостатки. ASCII ограничен в знаках препинания, поэтому он не очень хорошо работает для типографски правильных правок. Когда-нибудь набирали текст «копировать/вставить» из Word, чтобы получить какую-то странную комбинацию символов? В этом недостаток стандарта ISO-8859 или, точнее, его предполагаемая совместимость с кодовыми страницами, специфичными для ОС (мы смотрим на вас, Microsoft!). Основным недостатком UTF-8 является отсутствие надлежащей поддержки в редактировании и публикации приложений. Другая проблема заключается в том, что браузеры часто не интерпретируют и просто отображают метку порядка байтов в кодировке UTF-8. Это приводит к отображению нежелательных глифов. И, конечно же, объявление одной кодировки и использование символов из другой без правильного объявления/ссылки на них на веб-странице затрудняет браузерам их правильное отображение и поисковым системам соответствующим образом их индексируют.

Для своих собственных документов, рукописей и т. Д. Вы можете использовать все, что вам нужно для выполнения работы. Что касается Интернета, то, похоже, большинство людей согласны с использованием версии UTF-8, в которой не используется знак порядка следования байтов, но это не является единодушным. Как видите, у каждой кодировки символов есть свое использование, контекст, сильные и слабые стороны. Как конечный пользователь, вам, вероятно, не придется иметь дело с этим, но теперь вы можете сделать дополнительный шаг вперед, если вы того пожелаете.

Оцените статью
TutoryBird.Ru
Добавить комментарий