Что такое Юникод (Unicode)?

Информация в компьютерных системах сохраняется в виде кодированных символов, чисел (последовательности битов) и обрабатывается процессором. Страницы кодируются по определенной схеме, составляющая собой карту определенной последовательности битов. Мир Unicode состоит из сотни различных кодированных схем, содержащих любую букву или символ. Схемы содержат 256 символов – каждый символ занимает 8 бит информации. Несмотря на простоту, подобные схемы не могут сохранить наборы символов, содержащиеся например в китайском или японском языках.
Unicode является попыткой объединить всевозможные схемы в один универсальный стандарт кодировки текста.

Значение Unicode

Unicode является попыткой объединить системы кодировки, распространенные на региональном уровне – такие как варианты стандарта ISO-8859 в Европе, Shift-JIS в Японии, и BIG-5 в Китае.

С точки зрения перевода/локализации Unicode является важным с точки зрения стандартизации.

  • с Unicode можно разработать одну программу или сайт для нескольких платформ, языков и стран, что приведет к значительному сокращению затрат на использование устаревших кодировок.
  • Unicode является общей схемой кодировки всех языков и символов.
  • Unicode помогает в преобразовании различных схем кодировки.
  • Unicode применяется для создания гипертекстовых ссылок и приложений. Unicode преобразовывает числа в символы; каждый символ представлен уникальным числом.

Стандарт Unicode

Стандарт Unicode является универсальным стандартом кодировки символов и используется для кодировки текста в компьютерных системах.
Unicode полностью совместим с международным стандартом ISO/IEC 10646.

Другими словами Unicode содержит те же символы, что и стандарт ISO/IEC 10646:2003 и кодирует 96,447 символов. Этого более чем достаточно для кодирования всех алфавитов, иероглифов и символов.
Unicode – это программа и независимый язык.
Тем не менее, Unicode применяется для кодирования простых текстов, а не для сложных.

Сокращения и определения

При работе с Unicode часто встречаются сокращения, например, такие как UCS-*, UTF-*, и BOM. Что они означают?

UCS-* и UTF-*

Наиболее часто применяются для хранения последовательности 2 или 4 байт. Официальное название данных видов кодировки – UCS-2 и UCS-4.
В ISO/IEC 10646 указано, что UCS является универсальным набором символов.
Число указывает на число байт (1 байт равняется 8 битам) в закодированном наборе символов. UCS-2 – 2 байта, UCS – 4 байта.
UTF – формат кодировки Unicode.

Для совместимости с более старыми системами, поддерживающими Unicode, было принято решение о представлении символов в виде битов.

Что такое BOM?

BOM означает маркер последовательности байтов, применяется для кодирования подписи файла – последовательность байтов в начале файла, указывающая на метод кодировки и порядок байтов.

UTF-32, UTF-16, и UTF-8

Давайте рассмотрим их подробнее.

UTF-32

UTF-32 представляет собой 21-битный код и является частью 32-битного кода. Используется в современных компьютерах.

UTF-16

UTF-16 представляет собой 21-битный код и является частью 16-битного кода. Большинство компьютеров использует 16-битный код, что дает ему преимущество. UTF-16 является наистарейшей формой Unicode и используется в языках программирования Java и JavaScript, а также для создания гипертекстовых ссылок.
Каждый код содержит 16 бит (два байта 2*8 = 16 бит). В UTF-16 различают обратный порядок байтов и прямой.
Для примера рассмотрим число 1077.

Для сохранения этого числа потребуется два байта.

  • один байт для сохранения первой части (10).
  • один байт для сохранения второй части (77).

Однако порядок байтов зависит от процессора компьютера. Другими словами, одни компьютеры понимают это число как «10,77″, другие «77,10″.

Первый метод применяется для обратного порядка байтов, другой – для прямого.
В итоге имеем два вида UTF-16:

  • UTF-16 с обратным порядком байтов.
  • UTF-16 с прямым порядком байтов.

Например, в программе Microsoft Word используется прямой порядок, а при создании сайтов – обратный. Поэтому в начале файлов содержится код, с помощью которого можно определить к какому порядку байтов он относится.

UTF-8

Большинство сайтов написано именно на нем. Это 21-битный код с последовательностью от 1 до 4 8-битных кодов. Консорциум World-Wide Web принял решение о том, что все гипертекстовые страницы должны поддерживать кодировки UTF-8 и UTF-16.
Таким образом, с BOM можно различить стандарты UTF-8 и UTF-16.

Поскольку система UTF-8 имеет широкое распространение, давайте рассмотрим ее подробнее:

  • UTF-8 – это компактная, эффективная схема кодировки Unicode, содержит 1, 2, 3 или даже 4 байта. Используется для кодировки нескольких байт.
  • UTF-8 кодирует ASCII одним байтом информации. Это означает, что в одном символе языков латинской группы в среднем содержится 1,1 байт. В одном символе других языков может содержаться большее количество байтов. Только азиатские языки тяготеют к UTF-16.
  • UTF-8 оптимизирован для байтовых систем или систем, полностью совместимых с ASCII.
  • таким образом, для европейских языков больше подходит формат UTF-8, для азиатских UTF-16.
  • UTF-8 применяется в старых системах.
  • в отличие от других систем кодировки, UTF-8 очень легок в использовании.

Каждая система кодировки имеет свои плюсы и минусы, однако для сохранения информации все три системы используют 4 байта (или 32 бита).

Почему Unicode так выгоден? С его помощью можно преобразовать любой символ, букву или иероглиф.