Sto scrivendo un programma python per giudicare le emoji con un set unicode emoji raccolto. Durante il test, ho trovato che un emoji, prendere ☁
come esempio, ha due unicode, u'\u2601'
e u'\u2601\ufe0f'
, cosa significa "\ufe0f
"? È lo stesso se lo elimini?Alcuni emoji (ad es. ☁) hanno due unicode, u ' u2601' e u ' u0101 ufe0f'. Che cosa significa "ufe0f"? È lo stesso se lo elimini?
risposta
In Unicode il valore U+FE0F
è chiamato variation selector. Il selettore di variazione nel caso di emoji indica al sistema di mostrare al personaggio come dovrebbe trattare il valore. Ovvero, se debba essere trattato come testo o come immagine che potrebbe avere proprietà aggiuntive, come il colore o l'animazione.
For emoji ci sono due diversi selettori di variazione che possono essere applicati, U+FE0E
e U+FE0F
. U+FE0E
specifica che l'emoji deve essere presentata come testo. U+FE0F
specifica che deve essere presentato come un'immagine, con colore e possibile animazione.
Senza il selettore di varianti, il carattere viene ancora visualizzato correttamente (basta guardare la fonte della pagina con questo carattere: & # x2601;) ma non ci sono ulteriori informazioni sulla presentazione.
Questo è il Variant Form, che fornisce ulteriori informazioni per quei display, che sono in grado di visualizzare con il colore e altre cose.
This chart ti dà la differenza tra FE0F
e FE0E
:
si potrebbe considerare che la versione FE0E
è la versione testo Unicode, e la versione FE0F
è con la grafica (quelli che sono capaci verrà visualizzato graficamente), che degrada con grazia alla versione testuale, quando la visualizzazione grafica non è disponibile.
In realtà questo fornisce ulteriori informazioni ... Informazioni sul colore e altre cose. È un [modulo Variant] (https://en.m.wikipedia.org/wiki/Variant_form_ (Unicode)). –
FE0F è un [selettore di varianti] (https://en.m.wikipedia.org/wiki/Variant_form_ (Unicode)) –
@PraveenKumar suona come una risposta, non credi? –