Некоторые emojis (например, ☁) имеют два unicode, u '\ u2601' и u '\ u2601\ufe0f'. Что означает u '\ ufe0f'? Это то же самое, если я удалю его?

Я пишу программу python, чтобы судить emoji с собранным набором unicode emoji. Во время теста я обнаружил, что один , возьмите в качестве примера, имеет два юникода, u'\u2601' и u'\u2601\ufe0f', что означает \ufe0f? Это то же самое, если я удалю его?

Ответы

Ответ 1

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

Эта диаграмма дает вам разницу между FE0F и FE0E:

enter image description here

Вы могли бы подумать, что версия FE0E является текстовой версией в FE0F unicode, а версия FE0F - графикой (графические функции могут отображаться графически), которая грациозно ухудшается до текстовой версии, когда графический дисплей недоступен.

Ответ 2

В Unicode значение U+FE0F называется селектором вариаций. Селектор вариаций в случае emoji состоит в том, чтобы сообщить системе о том, как он должен обрабатывать значение. То есть, следует ли рассматривать его как текст или изображение, которое может иметь дополнительные свойства, такие как цвет или анимация.

Для emoji существуют два разных селектора вариаций, которые могут быть применены, U+FE0E и U+FE0F. U+FE0E указывает, что U+FE0E должен быть представлен как текст. U+FE0F указывает, что он должен быть представлен как изображение, с цветом и возможной анимацией.

Без селектора вариаций персонаж все равно отлично отображает (просто посмотрите на источник страницы на этом символе: ☁), но нет дополнительной информации о презентации.