Поиск…


замечания

Кодовая точка Unicode, что программисты часто думают об одном персонаже, часто соответствует тому, что, по мнению пользователя, является одним персонажем. Иногда, однако, «персонаж» состоит из нескольких кодовых точек, как показывают приведенные выше примеры.

Это означает, что операции, такие как нарезка строки или получение символа в заданном индексе, могут работать не так, как ожидалось. Например, 4- й символ строки "Café" - 'e' (без акцента). Аналогичным образом, отсечение строки до длины 4 приведет к удалению акцента.

Техническим термином для такой группы кодовых точек является графемный кластер . См. UAX # 29: Сегментация текста в Юникоде

Диакритические

Письмо с диакритикой может быть представлено буквой и комбинирующей буквой-модификатором. Обычно вы думаете о как о персонаже, но это действительно 2 кодовых пункта:

  • U+0065 - ЛАТИНСКОЕ МАЛОЕ ПИСЬМО E
  • U+0301 - КОМБИНИРОВАНИЕ ОСТРОГО АКЦЕНТА

Аналогично = c + ¸ , а = a + ˚

комбинированные формы

Чтобы усложнить ситуацию, часто существует кодовая точка для скомпонованной формы:

"Café" = 'C' + 'a' + 'f' + 'e' + '´'
"Café" = 'C' + 'a' + 'f' + 'é'

Хотя эти строки выглядят одинаково, они не равны, и они даже не имеют одинаковой длины (соответственно 5 и 4).

Текст Zalgo

Существует эта вещь, называемая Zalgo Text, которая доводит это до крайности. Вот первый графемный пример примера. Он состоит из 15 кодовых пунктов: латинская буква H и 14, объединяющая метки.

ЧАС

Хотя это не отображается в обычном тексте, это показывает, что «персонаж» действительно может состоять из произвольного количества кодовых точек

Эможи и флаги

Многие эможи состоят из более чем одной кодовой точки.

  • 🇯🇵: Флаг определяется как пара «букв индикатора региональных символов» (🇯 + 🇵)
  • 🙋🏿: за некоторыми эмози может последовать модификатор тона кожи: 🙋 + 🏿
  • 😀︎ или 😀️: Windows 10 позволяет указать, окрашен ли emoji или черно-белый, добавив селектор вариаций ( U+FE0E или U+FE0F )
  • 👨👩👧👦: семья. Закодировано, присоединяясь к emoji для мальчика, девушки, женщины и человека (👦, 👧, 👩, 👨) вместе с стопорами нулевой ширины ( U+200D ). На платформах, которые его поддерживают, это проявляется как эмоция семьи с двумя детьми.


Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow