
- •Предпосылки создания и развитие Юникода
- •Версии Юникода
- •Кодовое пространство
- •Система кодирования
- •Модифицирующие символы
- •Формы нормализации
- •Примеры
- •Двунаправленное письмо
- •Представленные символы
- •Способы представления
- •Порядок байтов
- •Юникод и традиционные кодировки
- •Реализации
- •Проблемы Юникода
- •«Юникод» или «Уникод»?
Версии Юникода
По мере изменения и пополнения таблицы символов системы Юникода и выхода новых версий этой системы, — а эта работа ведётся постоянно, поскольку изначально система Юникод включала только Plane 0 — двухбайтные коды, — выходят и новые документы ISO. Система Юникод существует в общей сложности в следующих версиях:
-
1.1 (соответствует стандарту ISO/IEC 10646—1:1993), стандарт 1991—1995 годов.
-
2.0, 2.1 (тот же стандарт ISO/IEC 10646—1:1993 плюс дополнения: «Amendments» с 1-го по 7-е и «Technical Corrigenda» 1 и 2), стандарт 1996 года.
-
3.0 (стандарт ISO/IEC 10646—1:2000), стандарт 2000 года.
-
3.1 (стандарты ISO/IEC 10646-1:2000 и ISO/IEC 10646-2:2001), стандарт 2001 года.
-
3.2, стандарт 2002 года.
-
4.0, стандарт 2003.
-
4.01, стандарт 2004.
-
4.1, стандарт 2005.
-
5.0, стандарт 2006.
-
5.1, стандарт 2008.
-
5.2, стандарт 2009.
-
6.0, стандарт 2010.
-
6.1, стандарт 2012.
-
6.2, стандарт 2012.
Кодовое пространство
Хотя формы записи UTF-8 и UTF-32 позволяют кодировать до 231 (2 147 483 648) кодовых позиций, было принято решение использовать лишь 1 112 064 для совместимости с UTF-16. Впрочем, даже и этого на текущий момент более чем достаточно — в версии 6.0 используется чуть менее 110 000 кодовых позиций (109 242 графических и 273 прочих символов).
Кодовое пространство разбито на 17 плоскостей по 216 (65536) символов. Нулевая плоскость называется базовой, в ней расположены символы наиболее употребительных письменностей. Первая плоскость используется, в основном, для исторических письменностей, вторая — для редко используемых иероглифов ККЯ, третья зарезервирована для архаичных китайских иероглифов[12]. Плоскости 15 и 16 выделены для частного употребления.[7]
Для обозначения символов Unicode используется запись вида «U+xxxx» (для кодов 0…FFFF), или «U+xxxxx» (для кодов 10000…FFFFF), или «U+xxxxxx» (для кодов 100000…10FFFF), где xxx — шестнадцатеричные цифры. Например, символ «я» (U+044F) имеет код 044F16 = 110310.
Система кодирования
Универсальная система кодирования (Юникод) представляет собой набор графических символов и способ их кодирования для компьютерной обработки текстовых данных.
Графические символы — это символы, имеющие видимое изображение. Графическим символам противопоставляются управляющие символы и символы форматирования.
Графические символы включают в себя следующие группы:
-
буквы, содержащиеся хотя бы в одном из обслуживаемых алфавитов;
-
цифры;
-
знаки пунктуации;
-
специальные знаки (математические, технические, идеограммы и пр.);
-
разделители.
Юникод — это система для линейного представления текста. Символы, имеющие дополнительные над- или подстрочные элементы, могут быть представлены в виде построенной по определённым правилам последовательности кодов (составной вариант, composite character) или в виде единого символа (монолитный вариант, precomposed character).
Модифицирующие символы
Представление символа «Й» (U+0419) в виде базового символа «И» (U+0418) и модифицирующего символа « ̆» (U+0306)
Графические символы в Юникоде подразделяются на протяжённые и непротяжённые (бесширинные). Непротяжённые символы при отображении не занимают места в строке. К ним относятся, в частности, знаки ударения и прочие диакритические знаки. Как протяжённые, так и непротяжённые символы имеют собственные коды. Протяжённые символы иначе называются базовыми (англ. base characters), а непротяжённые — модифицирующими (англ. combining characters); причём последние не могут встречаться самостоятельно. Например, символ «á» может быть представлен как последовательность базового символа «a» (U+0061) и модифицирующего символа « ́» (U+0301) или как монолитный символ «á» (U+00C1).
Особый тип модифицирующих символов — селекторы варианта начертания (англ. variation selectors). Они действуют только на те символы, для которых такие варианты определены. В версии 5.0 варианты начертания определены для ряда математических символов, для символов традиционного монгольского алфавита и для символов монгольского квадратного письма.