❗ Вебсайт в стадии бета-тестирования. Возможны ошибки.

Комбинированный символ

Графический символ

Графический символ (Graphic character) — один из символов следующих категорий: буквы (L), метки (M), цифры (N), пунктуацию (P), символы (S) и пробелы (Zs).

К графическим символам не относят: разделители строк и абзацев (Zl, Zp), символы управления (Cn, Cs, Cc, Cf).

Графические символы независимые, но это не мешает им участвовать в лигатурах.

Символ общей категории, базовый символ (Base character) — любой графический символ, за исключением меток (M).

Общая категория это символы, имеющие свойство General Category.

К символам общей категории не относят: символы управления (‘C’) и символы форматирования (F).

Кластер графемы

Графема (Grapheme) — элемент конкретной письменности.

Например, в русском языке графемами служат буквы, цифры, символы пунктуации.

С точки зрения Юникода понятие «графема» совпадает с понятием «графический символ».

Основа графемы (Grapheme base) — символ со свойством Grapheme_Base.

Свойство Grapheme_Base присутствует у всех символов общей категории (Base character).

Понятие основа графемы введено для упрощения обсуждения графического применения символов. Основа графемы может состоять из пробельного символа или последовательности символов.

Кластер графемы (Grapheme cluster) — набор символов, который пользователь идентифицирует как один знак вне зависимости от того, сколько на самом деле использовано глифов для изображения этого знака.

Кластер графемы представляет собой горизонтально сегментируемый элемент текста, состоящий из некоторой основы графемы и любого количества непробеловых символов. Для многих процессов обработки текста кластер графемы ведёт себя как отдельный символ с теми же свойствами, что и его графическая основа. Фактически добавленные непробеловые символы не изменяют свойств основы графемы.

Кластер графемы аналогичен, но не идентичен последовательности комбинируемых символов. Последовательность комбинируемых символов начинают с основного символа и продолжают на любую последовательность комбинируемых символов.

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

Кластер графем применяют для отображения текста: с размещением курсора, выделением, редактированием текста.

Графема гипертекста — класс функционально эквивалентных глифов гипертекста, содержащий элементы конкретной письменности.

В лингвистике существует несколько концепций графем. Теория гипертекста семиотически интерпретирует графему как элемент письменности; как глиф, а не фонему. Графему гипертекста одновременно можно различить лексически (как часть слова) и воспринять визуально (как изображение на экране). Например, в литературной (письменном) русском языке графемами служат буквы, цифры, символы пунктуации.

Глиф более широкое понятие, чем графема. Все графемы кириллицы относят к глифам. Однако не все глифы, относят к кириллице. Например, латинские буквы, символы логики или декоративная нумерация это глифы, но не кириллические графемы.

С другой стороны, очень похожие глифы представляют разные графемы. Например, рассмотрим три буквы: A (U+0041 Latin Capital Letter A), А (U+0410 Cyrillic Capital Letter A), Α (U+0391 Greek Capital Letter Alpha). На внешний вид, как глифы, они выглядят одинаково. Однако, это совершенно разные графемы: латинской, кириллической и греческой письменностей.

В письменности используют графемные компоненты: символы препинания, математические символы, разделители слов (пробел) и другие глифы (типографские символы).

Совет

Подробнее о глифах гипертекста, отображающих графемы, изложено в разделе «Глиф».

Нормализация и декомпозиция

Комбинированный символ — сочетание основного символа и метки (диакритического знака).

Текст отображает комбинированный символ как единый. То, что визуально выглядит как одно и семантически относят к одному символу в тексте, с точки зрения глифов шрифта состоит из двух частей. Например, кириллическая буква «Й» (U+0419) в виде базового символа «И» (U+0418) и комбинирующей метки (U+0306):

Комбинированный символ

Комбинированный символ

При декомпозиции комбинированного символа могут возникать ошибки. Появление визуальной ошибки в содержании текста неприятно, но не критично. А вот в программировании это риск возникновения сбоя в программе. Если при интерпретации текста на языке высокого уровня комбинированный символ будет разделён на составляющие, то совершенно неизвестно как сработает сочетание этих двух символов.

Нормализация — замена каждого символа в строке его канонической формой.

Юникод определяет одну из кодировок как каноническую. После чего вводит две операции: каноническую декомпозицию и каноническую композицию.

В Юникоде существует четыре вида нормализации:

  • каноническая композиция (Normalization Form C, NFC);
  • каноническая декомпозиция (Normalization Form D, NFD);
  • совместимая композиция с потерями (Normalization Form KC, NFKC);
  • совместимая декомпозиция с потерями (Normalization Form KD, NFKD).

Нормализованная композиция (Normalization Form C, NFC) — это рекомендуемый способ хранения и обмена текстами в Вебе.

В настоящее время большинство языков программирования имеют стандартный набор процедур обработки символов в кодировке UTF-8, в том числе для низкоуровневых операций по нормализации. Например, в языке Go для этого существует собственный мощный пакет golang.org/x/text.