2016-06-29 31 views
13

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?

+2

In realtà questo fornisce ulteriori informazioni ... Informazioni sul colore e altre cose. È un [modulo Variant] (https://en.m.wikipedia.org/wiki/Variant_form_ (Unicode)). –

+0

FE0F è un [selettore di varianti] (https://en.m.wikipedia.org/wiki/Variant_form_ (Unicode)) –

+2

@PraveenKumar suona come una risposta, non credi? –

risposta

6

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.

+0

È valida un'emoji senza selettore di variazione? – syntonym

+0

Sì. Se guardi l'origine della pagina in cui si trova la nota nel mio ultimo paragrafo, vedrai che inserisco solo il carattere emoji '& # x2601;' e non il selettore di variazione – theB

10

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:

enter image description here

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.