Эквивалентность Юникода


Эквивалентность Юникода — это спецификация стандарта кодировки символов Юникода , согласно которой некоторые последовательности кодовых точек представляют по существу один и тот же символ. Эта функция была введена в стандарт для обеспечения совместимости с ранее существовавшими стандартными наборами символов , которые часто включали похожие или идентичные символы.

Unicode предоставляет два таких понятия: каноническую эквивалентность и совместимость. Предполагается, что последовательности кодовых точек , определенные как канонически эквивалентные , имеют одинаковый внешний вид и значение при печати или отображении. Например, кодовая точка U+006E ( латинская строчная буква «n»), за которой следует U+0303 ( сочетающая тильда «◌̃»), определяется Unicode как канонически эквивалентная одной кодовой точке U+00F1 (строчная буква буква « ñ » испанского алфавита ). Следовательно, эти последовательности должны отображаться одинаковым образом, одинаково обрабатываться такими приложениями, как алфавитный порядок имен или поиск , и могут заменять друг друга. Аналогичным образом, каждый блок слогов хангыля , который закодирован как один символ, может быть эквивалентно закодирован как комбинация начального соединительного джамо, гласной, соединяющей джамо, и, если применимо, конечного соединительного джамо.

Предполагается , что последовательности, определенные как совместимые , могут иметь различный внешний вид, но одно и то же значение в некоторых контекстах. Так, например, кодовая точка U+FB00 (типографская лигатура «ff») определяется как совместимая, но не канонически эквивалентная, с последовательностью U+0066 U+0066 (две латинские буквы «f»). Совместимые последовательности могут обрабатываться одинаково в некоторых приложениях (например, сортировка и индексирование ), но не в других; и могут заменять друг друга в одних ситуациях, но не в других. Последовательности, которые канонически эквивалентны, также совместимы, но обратное не обязательно верно.

Стандарт также определяет процедуру нормализации текста , называемую нормализацией Unicode , которая заменяет эквивалентные последовательности символов, так что любые два текста, которые эквивалентны, будут сведены к одной и той же последовательности кодовых точек, называемой формой нормализации или нормальной формой исходного текста. Для каждого из двух понятий эквивалентности Unicode определяет две нормальные формы: одну полностью составленную (где несколько кодовых точек заменяются отдельными точками, когда это возможно) и одну полностью декомпозированную (где отдельные точки разбиваются на несколько).

По соображениям совместимости или по другим причинам Unicode иногда назначает две разные кодовые точки объектам, которые по сути являются одним и тем же символом. Например, символ «Å» может быть закодирован как U+00C5 (стандартное название «ЛАТИНСКАЯ ЗАГЛАВНАЯ БУКВА A С КОЛЬЦОМ НАВЕРХУ», буква алфавита на шведском и некоторых других языках ) или как U+212B («ЗНАК АНГСТРОМА»). ). Тем не менее, символ ангстрема определяется как шведская буква, а большинство других символов, которые являются буквами (например, «V» для вольта ), не имеют отдельной кодовой точки для каждого использования. В общем, кодовые точки действительно идентичных символов (которые могут отображаться одинаковым образом в шрифтах Unicode) определяются как канонически эквивалентные.

Для совместимости с некоторыми старыми стандартами Unicode предоставляет отдельные кодовые точки для многих символов, которые можно рассматривать как модифицированные формы других символов (например, U+00F1 для «ñ» или U+00C5 для «Å») или как комбинации двух или больше символов (например, U+FB00 для лигатуры «ff» или U+0132 для голландской буквы « IJ »)