Другое

Unicode (Юникод): что это, как кодировать и расшифровать символы

Lorem ipsum dolor

Юникод — это  единая таблица кодировки символов, которая используется во всем мире для текстовых символов на разных языках. Юникод включает в себя несколько протоколов кодирования, при помощи которых текстовые символы преобразуются в символы, понятные для компьютера.

Современный компьютер может выполнять разные сложные задачи. Однако работает он очень примитивно и понимает только «двоичное» представление, которое состоит только из «единиц и нулей». Неважно что вы делаете за компьютером: пишете текст, смотрите фильм, программируете, редактируете фотографии и др. Для компьютера это все всего лишь поток из двоичных символов. Поэтому, все что попадает внутрь компьютера, преобразуется в двоичные числа, в том числе и текст.

Юникод — это стандарт, который отвечает за преобразование текстовых символов в двоичный код. Когда вы пишете какой-то текст, вам не нужно задумываться как та или иная буква будет обозначаться в байтовом, битовом или двоичном представлении. Об этом заботятся протоколы кодировки. Таких протоколов кодировки достаточно много, но самые популярные — это те, которые входят в состав Юникод.

Юникод — что это?

Таблица символов  Юникод определяет  кодировку символов для большинства современных языков: 

  • кириллические и латинские символы;

  • восточные языки с письменностью «справа-налево»;

  • азиатские языки.

При этом, Юникод еще регламентирует кодировку:

  • технических символов;

  • знаков препинания;

  • математических символов;

  • эмодзи;

  • изменяющихся символов, которые входят в состав других символов, например «~»(тильда);

  • и др.

Таблица символов Юникод постоянно обновляется. На сегодняшний день она регламентирует кодировку более 128 тысяч текстовых символов из разных человеческих языков. При этом Юникод  обладает «свободным» местом для новых символов в размере 850 тысяч ячеек. Несложно заметить, что потенциал для развития символов Юникод просто огромен.

Важно отметить, что кодирование по системе Юникод происходит дважды:

  • первый уровень кодирования определяет текстовому символу кодовую позицию в системе Юникод, например U-0000;

  • второй уровень кодирования происходит, когда набор символов из таблицы Юникод кодируется в двоичное представление.

Протоколы кодировки Юникод

Протокол кодирования Юникод  указывает на идентичность текстовых символов и позволяет определять им какое-то битовое значение.

В Юникод  есть три основных протокола кодирования, которые отличаются по количеству используемых битов. Все три протокола могут кодировать одни и те же символы. Причем символ из одной кодировки может легко и без проблем конвертироваться в символ другой кодировки. Три протокола кодирования Юникод:

  1. UTF-8. Это самый популярный протокол кодирования, который используется повсеместно. Он использует 8-битовое обозначение символов и полностью соответствует более старому протоколу кодировки — ASCII. Документы, кодированные этим протоколом, имеют наиболее легкий вес по сравнению с документами, кодированными другими протоколами. Данный вид кодировки обладает переменной длиной. То есть, если для символа не хватает длины одного байта (8 бит), тогда он может быт закодирован двумя байтами.

  2. UTF-16. Использует 16-битовое обозначение закодированных символов. Используется реже, чем первый протокол кодирования. Сочетает в себе баланс между компактностью и эффективностью. Этот вид кодировки также обладает переменной длиной. В стандартном виде кодировка происходит в 2 байта (16 бит), если этой длины не хватает, тогда символ может быть закодирован в 4 байта. Такой вид кодировки часто применяется в операционных системах.

  3. UTF-32. Использует 32-битное обозначение закодированных символов. Применяется еще реже за счет того, что требует больше системных ресурсов для работы с закодированными документами в этом протоколе.

 Важно отметить, что когда кодирование происходит в пределах системы Юникод, тогда пользователь не видит существенной разницы и проблем с текстом. Так как конвертация кодировки между разными протоколами происходит безболезненно. 

Юникод всех объединил

До того как все начали использовать Юникод, творилась неразбериха. Изначально была очень популярна ASCII-кодировка, которая активно использовалась в свое время. Ее проблема — это малый размер. Кодировка ASCII определяет 128 символов, куда был включен латинский алфавит, цифры и основные знаки препинания. Но между разработчиками появлялась несогласованность, потому что такого количества закодированных символов оказалось очень мало. Поэтому рождались и другие протоколы кодировки. Каждая отдельная IT-компания разрабатывала собственную систему кодировки. Для конечного пользователя — это был полнейший бардак. Потому что часто бывали такие случаи, что приходил какой-то текстовый документ, а прочитать его не представлялось возможным, потому что в программе для чтения отсутствовал именно такой протокол кодирования. Приходилось искать протокол, устанавливать его в программу и только потом текст становился доступным. В общем, от обилия протоколов кодировки страдал конечный пользователь.

С приходом Юникод все «устаканилось», потому что эта система способна вместить более 1 миллиона символов. Все что оставалось сделать — это всем разработчикам в мире договориться о применении единой системы кодирования. Что и было сделано, поэтому современные пользователи крайне редко испытывают проблемы с разными кодировками. Последней такой большой проблемой была разная кодировка в документах программ Word и LibreOffice, которая используется в дистрибутивах Linux.  Поэтому «вордовский» документ невозможно было прочитать в Линуксе и наоборот. Но проблема исправлена.

Заключение

Юникод — это огромная таблица символов, которая регламентирует кодировку текстовых символов разных человеческих языков. На сегодняшний день возможности Юникод практически безграничны, так как таблица легко масштабируется и может вместить огромное число новых символов. Так что мнение, что место в таблице скоро закончится — это всего лишь миф.

Схожие статьи

Что такое программа Google Toolbar, состав приложения, для чего она нужна
Другое

Что такое программа Google Toolbar, состав приложения, для чего она нужна

Оценка трудоемкости и сроков разработки программного обеспечения
Другое

Оценка трудоемкости и сроков разработки программного обеспечения

Другое

Все про оперативную память нового поколения: когда выйдет ДДР5?

Другое

Библиотека Libssh: уязвимости и ошибки, которые нужно устранить

×