Piszę program Pythona do oceny emoji z zestawem emoji unicode. Podczas testu odkryłem, że jeden emoji, jako przykład, ma ☁
, ma dwa znaki Unicode, u'\u2601'
i u'\u2601\ufe0f'
, co oznacza \ufe0f
? Czy to samo dotyczy usunięcia?Niektóre emoji (np. ☁) mają dwa unikody, u ' u2601' i u ' u2601 ufe0f'. Co znaczy u' ufe0f? Czy to samo dotyczy usunięcia?
Odpowiedz
W standardzie Unicode U+FE0F
nazywa się variation selector. Selekcja zmian w przypadku emoji polega na informowaniu systemu, w jaki sposób powinien on traktować wartość. To znaczy, czy powinno być traktowane jako tekst, czy jako obraz, który może mieć dodatkowe właściwości, takie jak kolor lub animacja.
For emoji Dostępne są dwa różne selektory zmian, które można zastosować: U+FE0E
i U+FE0F
. U+FE0E
określa, że emoji powinien być prezentowany jak tekst. U+FE0F
określa, że powinien on być prezentowany jako obraz, z kolorem i możliwą animacją.
Bez selektora zmiany znak nadal jest wyświetlany poprawnie (po prostu spójrz na źródło strony w tym znaku: & # x2601;), ale nie ma dodatkowych informacji na temat prezentacji.
To jest Variant Form, który zapewnia więcej informacji dla tych wyświetlaczy, które można wyświetlać za pomocą kolorów i innych rzeczy.
This chart daje różnicę między FE0F
i FE0E
:
Można uznać, że wersja FE0E
jest wersja tekstu Unicode, a wersja FE0F
jest z grafiką (tych które są w stanie wyświetlać graficznie), które z gracją ulegają degradacji do wersji tekstowej, gdy wyświetlacz graficzny nie jest dostępny.
W rzeczywistości zapewnia to więcej informacji ... O kolorze i tym podobnych. Jest to [formularz wariantu] (https://en.m.wikipedia.org/wiki/Variant_form_ (Unicode)). –
FE0F jest [selektorem zmian] (https://en.m.wikipedia.org/wiki/Variant_form_ (Unicode)) –
@PraveenKumar brzmi jak odpowiedź, nie sądzisz? –