2015-05-26 15 views
6

Stavo cercando di estrarre tutti i caratteri emoji da una stringa (come un disinfettante). Ma non riesco a trovare un set completo di valori emoji.Intervallo valori Emoji

Qual è il set completo di valori UTF16 dei caratteri emoji?

+0

[unicode.org] (http://www.unicode.org/emoji/charts/full-emoji-list.html) è la guida definitiva per tutto ciò che riguarda UTF. – usr2564301

+1

E se leggi le [FAQ di emoji] (http://unicode.org/faq/emoji_dingbats.html), dice: "* Le emoji sono distribuite su molti blocchi di Unicode *", che è evidente nel [pieno grafico emoji] (http://www.unicode.org/emoji/charts/full-emoji-list.html), quindi non è possibile utilizzare un controllo a intervallo singolo per filtrarli, sarà necessario verificare la presenza di più intervalli e anche valori specifici. –

+0

Grazie, Jongware e Remy. Ma ero solo curioso che ci fosse un elenco di intervalli che potrei usare direttamente. Dato che ci sono più di 1.000 caratteri emoji, ci vuole un po 'per capire le gamme dal grafico – SL988

risposta

4

del standard Unicode Unicode® Technical Report #51includes un elenco di emoji (emoji-data.txt):

... 
21A9 ; text ; L1 ; none ; j # V1.1 (↩) LEFTWARDS ARROW WITH HOOK 
21AA ; text ; L1 ; none ; j # V1.1 (↪) RIGHTWARDS ARROW WITH HOOK 
231A ; emoji ; L1 ; none ; j # V1.1 (⌚) WATCH 
231B ; emoji ; L1 ; none ; j # V1.1 (⌛) HOURGLASS 
... 

credo che si vorrebbe rimuovere ogni carattere elencati in questo documento che aveva un Default_Emoji_Style di emoji.

Non c'è modo, a parte il riferimento a una lista di definizioni come questa, per identificare i caratteri emoji in Unicode. Come dice il riferimento alle FAQ, sono diffuse in diversi blocchi.

+1

La tabella emoji-data.txt [è stata aggiornata alla 2.0] (http://www.unicode.org/Public/emoji/2.0//emoji-data.txt). Vedi http://unicode.org/reports/tr51/index.html#emoji_data – drott

-1

Se si ha a che fare solo con caratteri inglesi e caratteri emoji, penso che sia fattibile. Prima converti la tua stringa in caratteri UTF-16, quindi controlla ogni carattere il cui valore è maggiore di 0x0xD800 (per emoji è in realtà> = 0xD836) dovrebbe essere un'emoji.

Questo perché "The Unicode standard permanently reserves the code point values between 0xD800 to 0xDFFF for UTF-16 encoding of the high and low surrogates" e, naturalmente, caratteri inglesi (e molti altri caratteri non cadrà in questo intervallo)

Ma perché punto di codice emoji parte da U1F300 loro valore UFT-16 in realtà rientra in questa gamma .

Controlla qui per un quick reference for emoji UFT-16 value, se non ti preoccupi di farlo da solo.

+0

Ciao Qiulang, Grazie per la tua risposta mentre non penso che sia corretta. Un semplice esempio di contatore è [0x2600] (http://www.iemoji.com/view/emoji/183/nature/black-sun-with-rays) che non rientra nell'intervallo fornito ma è un'emoji. Inoltre, non mi occupo solo di inglese, ma di più lingue. – SL988

+0

Sì, conosco le emoji. Ma la maggior parte dei personaggi delle emoji rientra nell'intervallo che ho detto. Solo un paio di loro no, dovrebbe essere facile da gestire con – Qiulang

+0

Controlla qui https://en.wikipedia.org/wiki/Emoji, solo alcuni che si chiama blocco Dingbats – Qiulang