Соединители
В алфавитах некоторых языков отдельные фонемы записываются в виде двух
символов, называемых диграфом. Другими словами, диграф — это группа из двух
последовательных букв, которые представляют один звук (или фонему).
Примеры диграфов в английском языке
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.