Unicode.Краткий обзор

Уникод представляет собой систему кодирования символов, которая используется компьютерами для хранения и обмена текстовыми данными. В Уникод имеется уникальный номер (unique number) (или кодовый знак) (code point) для каждого символа основных мировых систем письменности. В эту систему также включены технические символы, знаки пунктуации и многие другие символы, используемые в письменности.

Помимо того, что Уникод является таблицей кодов символов (character map), он также включает в себя алгоритмы для сопоставления и кодирования двусторонней письменности, например, арабской, а также спецификации для нормализации текстовых форм.

В данном разделе приводится общее описание Уникода. Для получения более полной информации и списка поддерживаемых языков, символы которых могут быть закодированы с помощью Unicode, см.Веб-сайт Unicode Consortium.

Кодовые знаки (Code points)

Символы представляют собой единицы информации, которые приблизительно соответствуют единице текста в письменной форме естественного языка. Уникод определяет то, каким образом символы будут интерпретироваться, а не отображаться.

Образ символа (глиф), который отображается, или визуальное представление символа, является знаком, который выводится на экране монитора или распечатанной странице. В некоторых системах записи один символ может соответствовать нескольким глифам, или несколько символов может соответствовать одному глифу. Например, «ll» в испанском языке является одним глифом, но двумя символами: «l» и «l».

В Уникод символы преобразуются в кодовые знаки (code point). Кодовые знаки представляют собой числа, которые назначаются Unicode Consortium для каждого символа в каждой системе записи. Кодовые знаки представляются в виде записи «U+» и четырех чисел и/или букв. Ниже приводятся примеры кодовых знаков (code points) для четырех разных символов: строчная l, строчная u с умляутом, бета и строчной e с акутом.

l = U+006C

u = U+00FC

= U+0392

e = U+00E9

Уникод содержит 1,114,112 кодовых значений (code points); на настоящий момент времени, для них назначено более 96,000 символов.

Уровни (Planes)

Кодовое пространство Уникода для символов разделено на 17 уровней (plane), каждый из которых содержит 65,536 кодовых знаков.

Первым уровнем (plane) —plane 0— является Basic Multilingual Plane (BMP). Большая часть наиболее используемых символов кодируются с помощью BMP, и на сегодняшний день это уровень, на котором закодировано больше всего символов. BMP содержит кодовые знаки (code points) для почти всех символов современных языков и многих специальных символов. В BMP существует порядка 6,300 неиспользуемых кодовых знаков (code points).Они будут использованы для добавления большего числа символов в будущем.

Следующим уровнем (plane) —plane 1— является Supplementary Multilingual Plane (SMP). SMP используется для кодирования древних символов, а также музыкальных и математических символов.

Кодирование символов

Кодирование символов определяет каждый символ, его кодовый знак (code point) и то, как кодовый знак (code point) будет представлен в битах. Не зная, какое кодирование использовалось, вы не сможете интерпретировать строку символов корректно.

Существует очень большое количество схем кодирования, но конвертировать их данные между ними очень трудно, причем немногие из них могут учесть наличие символов более двух-трех разных языков. Например, если ваш ПК по умолчанию настроен на использование OEM-Latin II и вы просматриваете Веб-сайт, который использует IBM EBCDIC-Cyrillic, то все символы, которые будут представлены в Cyrillic, который не будет закодирован в схеме Latin II, не будут отображаться корректно.Такие символы будут замещены другими символами, например, знаками вопроса и квадратами.

Поскольку Уникод содержит кодовые знаки (code points) для большинства символов во всех современных языках, то использование кодировки символов Уникод позволит вашему компьютеру интерпретировать практически каждый известный символ.

Существует три основных схемы Юникод для кодирования символов: UTF-8, UTF-16 и UTF-32. UTF означает Unicode Transformation Format. Числа, которые идут за UTF, означают размер единиц (в байтах), используемых для кодирования.

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

Существуют и другие кодировки: например, UTF-7 и UTF-EBCDIC. Существует также кодировка GB18030, которая является китайским эквивалентом кодировки UTF-8 и поддерживает упрощенные и традиционные китайские символы. Для русского языка удобно пользоваться windows-1251.

12/10/2012