Юникод

Автор статьи
Екатерина Дёшина

Юникод (Unicode) — это стандарт кодирования, который включает в себя символы почти всех языков мира. С его помощью компьютер обрабатывает тексты, а затем корректно отображает их на экране. 

Вся информация хранится и обрабатывается в компьютере в двоичной форме: в виде нулей и единиц. Чтобы корректно переводить такие последовательности в понятные пользователям символы, придумали специальные кодировки. Они задают правила, по которым определенному символу (цифре, букве или даже музыкальной ноте) присваивается числовой код.

Чтобы корректно выводить на экран символы, машине нужно знать, какому двоичному коду они соответствуют. Например, «0100 0001» соответствует букве «A» латиницы. Однако количество таких кодов ограничено. Поэтому Юникод работает иначе.

Любому символу присваивается кодовая точка — уникальное числовое значение. Она имеет вид U+XXXX. Префикс U+ означает Unicode, а XXXX — шестнадцатеричное представление символа. Если в двоичной системе используются всего два символа (0 и 1), то в шестнадцатеричной — целых 16. Это цифры от 0 до 9, а также буквы A, B, C, D, E и F. Буквы соответствуют числам от 10 до 15.

Например, английской букве «A» соответствует кодовая точка U+0041. А слово HELLO соответствует пяти кодовым точкам: U+0048 U+0065 U+006C U+006C U+006F.

Далее каждая кодовая точка переводится в понятный компьютеру двоичный формат и хранится в его памяти.

Таблица эмоджи и их кодов

С помощью Юникода закодированы даже эмоджи. Источник

Зачем нужен Юникод

Изначально появлялись отдельные кодировки для знаков определенного языка. Большинство из них были несовместимы друг с другом, что приводило к проблеме «кракозябр» — вместо нормального текста на странице отображались странные символы или иероглифы.

Например, девушка Маша из России отправляла e-mail со словом «Привет» своему другу, проживающему в Армении. Но вместо этого он видел на экране такое сообщение: «?????». Исходный текст терялся, так как их компьютеры поддерживали разные кодировки. 

Для решения этой проблемы был создан Юникод. Он обеспечивает единый способ представления символов и упрощает работу с текстом на многоязычном уровне. С его помощью можно отправить электронное письмо или разместить текст на сайте даже на клингонском (это искусственный язык, который был для разработан лингвистом Марком Окрандом специально для вселенной сериала «Звёздный путь»). Получатели увидят его в оригинальном читаемом виде. 

Сейчас Юникод включает примерно 150 тысяч символов — и этого уже достаточно, чтобы охватить почти все системы письменности.

скрин с нечитаемым текстом

Если бы раньше человек отправил письмо на клингонском, адресат получил бы примерно такой текст. Проблема возникала из-за несовместимых кодировок: компьютер отправителя был настроен на один язык, а получателя — на другой

Другие кодировки: что было до Юникода

Изначально появлялись разные кодировки — каждая для отдельного языка. Наиболее известными считаются ASCII, KOI8-R и Windows-1251. 

ASCII. Это таблица кодировки, в которую входит 127 символов: латинские буквы, цифры и знаки препинания. Символы кириллицы она не поддерживает. Если пользователь попробует закодировать при помощи ASCII текст на русском языке, на выходе он получит набор вопросительных знаков. Исходный текст будет потерян. 

KOI8-R. Чтобы компьютер мог выводить символы не только латинского алфавита, появилась таблица кодировки KOI8-R. Она совместима с ASCII и включает 256 знаков. 

Windows-1251. Ещё одна таблица кодировки, которая поддерживает кириллицу. При этом, хотя как и KOI8-R, она поддерживает кириллицу, одни и те же символы в них кодируются по-разному. 

изображение с кодировкой символа «Г»

Символ «Г» в разных кодировках. Источник

Если текст, закодированный с помощью KOI8-R, раскодировать с помощью Windows-1251, адресат получит сообщение в нечитаемом виде. 

изображение с результатом декодирования текста

Так выглядит один текст в разных вариантах кодирования. Источник

Кроме того, что первые кодировки конфликтовали друг с другом, существовало ограничение по количеству символов. У ASCII — 127, у Windows-1251 — 256. Для многих непопулярных языков кодировки просто отсутствовали. Юникод же включает все допустимые символы и правила их кодирования. 

Главные мысли

юникод это

Вы нашли ответ?

5
2