Соединители

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

Примеры диграфов в английском языке

ch (как в church) th (then) sh (shoe)
ph (как в phony) th (think) gh (rough)

Некоторые диграфы объединены полностью в виде лигатур. На письме и в типографике лигатура возникает при объединении двух или более графем или букв в один глиф. Примером является символ амперсанда (&), возникший из двух смежных латинских букв e и t («et» означает «и»). При наборе текста на английском языке fi и ffi часто отображаются в виде лигатур.

Если лигатуры и диграфы имеют одинаковое толкование на всех языках, использующих данный алфавит, нормализация Unicode обычно устраняет различия и обеспечивает их согласование. Если у них разное толкование, для согласования должны использоваться альтернативные методы (вероятно, выбранные на уровне регистратуры доменных имен) или пользователей необходимо обучить, чтобы они понимали невозможность согласования. Пример различного толкования приведен в разделе 4.3 RFC 5894. Консорциум Unicode предлагает две основные стратегии определения поведения конкретного символа при соединении после применения алгоритма двунаправленного отображения для обработки символов соединителей нулевой ширины, так называемых ZWJ и ZWNJ. (Подробнее об этих соединителях см. здесь.)

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

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

Подробнее о соединителях см. в разделе 4.3 RFC 5894.