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


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

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 »)