Юникод — это единая таблица кодировки символов, которая используется во всем мире для текстовых символов на разных языках. Юникод включает в себя несколько протоколов кодирования, при помощи которых текстовые символы преобразуются в символы, понятные для компьютера.
Современный компьютер может выполнять разные сложные задачи. Однако работает он очень примитивно и понимает только «двоичное» представление, которое состоит только из «единиц и нулей». Неважно что вы делаете за компьютером: пишете текст, смотрите фильм, программируете, редактируете фотографии и др. Для компьютера это все всего лишь поток из двоичных символов. Поэтому, все что попадает внутрь компьютера, преобразуется в двоичные числа, в том числе и текст.
Юникод — это стандарт, который отвечает за преобразование текстовых символов в двоичный код. Когда вы пишете какой-то текст, вам не нужно задумываться как та или иная буква будет обозначаться в байтовом, битовом или двоичном представлении. Об этом заботятся протоколы кодировки. Таких протоколов кодировки достаточно много, но самые популярные — это те, которые входят в состав Юникод.
Юникод — что это?
Таблица символов Юникод определяет кодировку символов для большинства современных языков:
кириллические и латинские символы;
восточные языки с письменностью «справа-налево»;
азиатские языки.
При этом, Юникод еще регламентирует кодировку:
технических символов;
знаков препинания;
математических символов;
эмодзи;
изменяющихся символов, которые входят в состав других символов, например «~»(тильда);
и др.
Таблица символов Юникод постоянно обновляется. На сегодняшний день она регламентирует кодировку более 128 тысяч текстовых символов из разных человеческих языков. При этом Юникод обладает «свободным» местом для новых символов в размере 850 тысяч ячеек. Несложно заметить, что потенциал для развития символов Юникод просто огромен.
Важно отметить, что кодирование по системе Юникод происходит дважды:
первый уровень кодирования определяет текстовому символу кодовую позицию в системе Юникод, например U-0000;
второй уровень кодирования происходит, когда набор символов из таблицы Юникод кодируется в двоичное представление.
Протоколы кодировки Юникод
Протокол кодирования Юникод указывает на идентичность текстовых символов и позволяет определять им какое-то битовое значение.
В Юникод есть три основных протокола кодирования, которые отличаются по количеству используемых битов. Все три протокола могут кодировать одни и те же символы. Причем символ из одной кодировки может легко и без проблем конвертироваться в символ другой кодировки. Три протокола кодирования Юникод:
UTF-8. Это самый популярный протокол кодирования, который используется повсеместно. Он использует 8-битовое обозначение символов и полностью соответствует более старому протоколу кодировки — ASCII. Документы, кодированные этим протоколом, имеют наиболее легкий вес по сравнению с документами, кодированными другими протоколами. Данный вид кодировки обладает переменной длиной. То есть, если для символа не хватает длины одного байта (8 бит), тогда он может быт закодирован двумя байтами.
UTF-16. Использует 16-битовое обозначение закодированных символов. Используется реже, чем первый протокол кодирования. Сочетает в себе баланс между компактностью и эффективностью. Этот вид кодировки также обладает переменной длиной. В стандартном виде кодировка происходит в 2 байта (16 бит), если этой длины не хватает, тогда символ может быть закодирован в 4 байта. Такой вид кодировки часто применяется в операционных системах.
UTF-32. Использует 32-битное обозначение закодированных символов. Применяется еще реже за счет того, что требует больше системных ресурсов для работы с закодированными документами в этом протоколе.
Важно отметить, что когда кодирование происходит в пределах системы Юникод, тогда пользователь не видит существенной разницы и проблем с текстом. Так как конвертация кодировки между разными протоколами происходит безболезненно.
Юникод всех объединил
До того как все начали использовать Юникод, творилась неразбериха. Изначально была очень популярна ASCII-кодировка, которая активно использовалась в свое время. Ее проблема — это малый размер. Кодировка ASCII определяет 128 символов, куда был включен латинский алфавит, цифры и основные знаки препинания. Но между разработчиками появлялась несогласованность, потому что такого количества закодированных символов оказалось очень мало. Поэтому рождались и другие протоколы кодировки. Каждая отдельная IT-компания разрабатывала собственную систему кодировки. Для конечного пользователя — это был полнейший бардак. Потому что часто бывали такие случаи, что приходил какой-то текстовый документ, а прочитать его не представлялось возможным, потому что в программе для чтения отсутствовал именно такой протокол кодирования. Приходилось искать протокол, устанавливать его в программу и только потом текст становился доступным. В общем, от обилия протоколов кодировки страдал конечный пользователь.
С приходом Юникод все «устаканилось», потому что эта система способна вместить более 1 миллиона символов. Все что оставалось сделать — это всем разработчикам в мире договориться о применении единой системы кодирования. Что и было сделано, поэтому современные пользователи крайне редко испытывают проблемы с разными кодировками. Последней такой большой проблемой была разная кодировка в документах программ Word и LibreOffice, которая используется в дистрибутивах Linux. Поэтому «вордовский» документ невозможно было прочитать в Линуксе и наоборот. Но проблема исправлена.
Заключение
Юникод — это огромная таблица символов, которая регламентирует кодировку текстовых символов разных человеческих языков. На сегодняшний день возможности Юникод практически безграничны, так как таблица легко масштабируется и может вместить огромное число новых символов. Так что мнение, что место в таблице скоро закончится — это всего лишь миф.
Другое