Swift: преобразования Unicode: как создать символ бесконечности радуги - PullRequest
0 голосов
/ 01 ноября 2019

В xcode разработка для iOS "\ u {1F3F3} \ u {FE0F} \ u {200D} \ u {1F308}" является радужным флагом.

"\ u {1F3F3}" - это белый флаг, а "\ u {1F308}" - радуга. Средние символы "\ u {FE0F} \ u {200D}" являются невидимыми символами, используемыми для объединения этих двух элементов в символ радуги.

Я пытаюсь объединить символы Юникода, чтобы сделать символ бесконечности радуги, но не совсем уверен, как это реализовать.

Не уверен, есть ли уже существующий юникод-символ или яблочный api, который я могу использовать для этого, но был бы рад узнать, как это сделать

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

1 Ответ

1 голос
/ 03 ноября 2019

Emoji шрифты все еще только шрифты. Если они не содержат определенный глиф, они не могут отображать этот глиф. Причина, по которой «looks» выглядит как радужный флаг, заключается в том, что кто-то нарисовал изображение радужного флага, а затем определил их шрифт таким образом, чтобы последовательность <U+1F3F3, U+FE0F, U+200D, U+1F308> отображалась с использованием этого конкретного изображения. Очень похоже на то, как кто-то сначала должен был определить точную форму буквы «А» в своем шрифте, а затем применить этот глиф к точке кода U+0041.

. Не существует кода для рендеринга изображений, который инстинктивно знает, какприменить цвета ? к форме ?️, а затем автоматически создает новый глиф на лету. Это все явно предопределено.

U+200D - это так называемый Zero Width Joiner (ZWJ), поэтому последовательности смайликов, использующие этот символ, соответственно называются Zero Width Joiner Sequence . Изначально они были изобретены Apple для поддержки смайликов, которые не были частью стандарта Unicode (в частности, вариантов ?, ? и ?️ с различными гендерными конфигурациями), но позже другие поставщики также присоединились к ним, и в настоящее время они официальночасть Unicode как альтернативный способ определения новых смайликов без необходимости кодировать совершенно новые символы. В настоящее время около трети всех официально рекомендованных смайликов - это последовательности ZWJ.

Теоретически, любой человек может создать свои собственные последовательности ZWJ, просто объединив существующих персонажей (как было в их первоначальном замысле). В вашем случае «♾️ + ZWJ + ?» или <U+267E, U+FE0F, U+200D, U+1F308> были бы очевидной последовательностью для бесконечного символа радужного цвета. Вам просто нужно создать свой собственный шрифт, содержащий нужный вам глиф, а затем распространить этот шрифт среди других людей, чтобы они могли видеть тот же самый глиф, что и вы. Есть только несколько проблем:

  1. Создание шрифтов с разноцветными глифами нелегко. Я не могу сказать вам, существуют ли вообще свободно доступные инструменты для этой задачи.
  2. Существует четыре различных формата для шрифтов Emoji (используемые Apple, Google, Microsoft и Mozilla соответственно), и они обычно не работаютна платформах друг друга, поэтому вам придется создавать не один, а несколько шрифтов, если вы не заботитесь о людях в других операционных системах.
  3. Установка собственных шрифтов невозможна на большинстве мобильных телефонов, поэтомуВаши пользовательские смайлики будут в основном доступны только пользователям настольных компьютеров.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...