# Implementazione delle emoji

L'implementazione degli emoji su diverse piattaforme è incominciata negli anni '90: oggi, gli emoji non devono avere sempre lo stesso aspetto non è prescritto, che può anzi variare in base al font e alla piattaforma, proprio come i diversi caratteri tipografici.
Ad esempio, il carattere tipografico Apple Color Emoji è di proprietà di Apple e può essere utilizzato solo su dispositivi Apple (a meno di hacking). Diverse società informatiche hanno sviluppato i propri font per visualizzare gli emoji: per alcuni di essi, il riutilizzo è stato reso possibile dall'open source. Esistono caratteri tipografici emoji sia a colori che monocromatici, oltre ad almeno un design animato.

## Aspetti tecnici
### Codifiche JIS, Shift JIS e Private Use Area

Diversi provider giapponesi di telefonia mobile hanno sviluppato altrettanti schemi schemi di codifica dei caratteri per i propri set di emoji, spesso incompatibili fra loro. Quando vengono trasmessi in Shift JIS su NTT DoCoMo, i simboli emoji sono codificati come una sequenza di due byte nell'intervallo da F89F a F9FC (espresso in esadecimale). Gli emoji su au di KDDI sono invece codificati con il tag IMG, a sua volta codificato in Shift JIS tra F340 e F7FC, o in JIS X 0208 esteso tra 7521 e 7B73. Gli emoji di SoftBank Mobile supportano colori e animazioni, e utilizzano formati diversi su 2G rispetto a 3G: nel formato 2G, sono codificati in sequenze attraverso l'uso dei caratteri di controllo Escape e Shift In, mentre nel formato 3G sono codificati in Shift JIS tra F741 e FBDE. Il formato SoftBank 3G entra in contrasto con le gamme Shift JIS sovrapposte utilizzate dagli altri fornitori: ad esempio, la rappresentazione Shift JIS F797 è utilizzata per un minimarket (🏪) di SoftBank, ma per un orologio da polso (⌚️) di KDDI.
Anche DoCoMo e SoftBank hanno sviluppato i propri schemi per la rappresentazione di set di emoji in JIS X 0208 esteso tra 7522 e 7E38, che spesso corrispondevano alle codifiche di emoji KDDI simili: ad esempio, la macchina fotografica (📷) era rappresentata in Shift JIS come F8E2 da DoCoMo, F6EE da KDDI e F948 da SoftBank, ma come 7670 in JIS da tutti e tre.
Tutti e tre i fornitori, insieme a Google (per Gmail), hanno sviluppato ciascuno almeno uno schema per codificare le proprie emoji nella Private Use Area di Unicode (mentre au ne ha sviluppati due); DoCoMo, ad esempio, ha utilizzato la gamma da U+E63E a U+E757. Questi cinque schemi tendenzialmente non si sovrappongono, ma lo schema primario ad uso privato sviluppato da au entra in parziale contrasto con quello di SoftBank. Le versioni di iOS precedenti alla 5.1 codificavano gli emoji nello schema dell'area ad uso privato di SoftBank, mentre quelle successive utilizzano lo standard Unicode.

### Supporto del piano multilingue supplementare

La maggior parte degli emoji (ma non tutti) è inclusa nel Piano multilingue supplementare (SMP) di Unicode. L'SMP include anche, ad esempio, scritture antiche come i geroglifici cuneiformi o quelli egizi, alcune scritture moderne come l'Adlam o l'Osage, e i caratteri speciali come i simboli musicali o i simboli alfanumerici matematici.
Unicode è stato originariamente progettato in codifica a 16 bit, e rappresentabile in una forma pura a 16 bit nota come UCS-2. Ciò corrisponde al piano multilingue di base (BMP) del set di caratteri codificati universali. In Unicode 2.0, quest'ultimo è stato esteso a 17 piani (numerati da 0 a 16, dove BMP è il piano 0) e i primi caratteri non BMP sono stati allocati in Unicode 3.1. L'UCS-2 è tuttavia divenuto obsoleto e quindi sostituito dall'UTF-16, una codifica a larghezza variabile che segue l'UCS-2 per il BMP, estendendolo però con codici a quattro byte che rappresentano caratteri non BMP. I caratteri non BMP (che si trovano dunque nell'SMP e in altri piani supplementari, come ad esempio gli hanzi aggiuntivi nel Piano ideografico supplementare, inclusi alcuni dei caratteri cantonesi di HKSCS) ora sono decine di migliaia.
Alcuni sistemi introdotti prima dell'avvento degli emoji Unicode erano stati progettati per supportare soltanto i caratteri nel BMP, partendo dal presupposto che i caratteri non BMP sarebbero stati utilizzati raramente, sebbene la mancata gestione di tali caratteri precluda la conformità all'Unicode. Ad esempio, le versioni precedenti di MySQL supportavano l'UCS-2 e una variante dell'UTF-8 escludendo i codici a quattro byte, quindi non gestivano correttamente i caratteri non BMP. Il supporto per l'UTF-32 e il supporto completo per l'UTF-16 e l'UTF-8 (sotto il nome utf8mb4 ) è stato aggiunto nella versione 5.5, e utf8 è stato mantenuto come alias per la versione fino a tre byte, sebbene si prevedano modifiche future in merito.
L'introduzione degli emoji Unicode è stata un incentivo per i fornitori a migliorare il loro supporto per i caratteri non BMP. L'Unicode Consortium osserva che "[l]a richiesta di emoji ha fatto sì che molte implementazioni aggiornassero notevolmente il loro supporto di Unicode".

### Supporto del formato del font

A qualsiasi sistema operativo che supporta l'aggiunta di caratteri supplementari possono essere aggiunti font che supportano gli emoji. Tuttavia, l'inclusione di emoji colorati nei formati di font esistenti richiede un supporto dedicato per i glifi a colori. Non tutti i sistemi operativi supportano i caratteri a colori, quindi in questi casi è possibile che gli emoji debbano essere renderizzati come disegni in bianco e nero, oppure non essere renderizzati affatto. Esistono quattro formati diversi impiegati per i glifi multicolori nei font SFNT: la versione 1.8 di OpenType li standardizza tutti e quattro.
* CBDT è un formato rasterizzato policromatico che usa dati bitmap grezzi e dati PNG incorporati, e impiega tabelle CBLC per salvare i dati sul formato dell'immagine: pertanto, in alcuni casi questo formato viene chiamato "CBDT/CBLC".
* COLR è un formato vettoriale policromatico che impiega diversi glifi monocromatici OpenType (TrueType o CFF). Ad alcuni di questi sono assegnati blocchi di colore, e poi sono impilati e associati ad uno specifico glifo di base monocromatico. I glifi impilati sono visualizzati al posto di quelli di base quando il carattere visualizzato è policromatico. I color sono estrapolati da una palette definita in una tabella CPAL a parte, ragion per cui questo formato viene talvolta chiamato "COLR/CPAL".
* sbix è un formato policromatico rasterizzato che impiega immagini JPEG, PNG o TIFF incorporate. L'inclusione di glifi rasterizzati o vettoriali come file PDF incorporati è consentito dalle specifiche della Apple Advanced Typography ma non da quelle OpenType, ed è prevista per le versioni future di iOS e macOS.
* SVG-in-OpenType (or OpenType-SVG) è un formato vettoriale policromatico che supporta immagini rasterizzate incorporate e impiega immagini SVG incorporate; prevede inoltre l'inculusione di un glifo monocromatico TrueType o CFF come riserva. Essendo basato su SVG, supporta anche i gradienti di colore. I font OpenType-SVG possono usare le palette CPAL (come il COLR), ma non obbligatoriamente.
Il formato COLR è stato introdotto da Microsoft con Windows 8.1; il CBDT da Google, ed è supportato su Android; lo sbix da Apple, ed è supportato su macOS e iOS; l'SVG-in-OpenType da Mozilla e Adobe come standard del settore.
Con gli ultimi aggiornamenti di Windows 10, iOs e MacOs, il supporto all'SVG-in-OpenType è stato ampliato. DirectWrite ha supportato tutti e quattro sin dall'Anniversary Update di Windows 10; tuttavia, Windows supporta solo un sottoinsieme di SVG-in-OpenType. Sul web, SVG-in-OpenType è supportato dalle ultime versioni di Firefox, Safari e Microsoft Edge, ma non da Google Chrome; Edge e Safari supportano inoltre sbix, mentre Edge e Chrome supportano CBDT e tutti e quattro supportano COLR .
Pertanto, in certi casi i caratteri a colori devono essere forniti in diversi formati per essere utilizzabili su più sistemi operativi o in più applicazioni.

### Nomi di dominio internazionalizzati

Un numero limitato di domini di primo livello consente la registrazione di nomi di dominio contenenti emoji, e i sottodomini contenenti emoji sono consentiti anche all'interno di qualsiasi dominio di primo livello.

## Implementazione
### Google (Android e Chrome OS)

Il progetto "font Noto" avviato da Google include il font "Noto Color Emoji", che fornisce glifi colorati per i caratteri emoji. Chrome OS supporta il set di emoji introdotto da Unicode 6.2. grazie all'inclusione dei caratteri Noto; a partire da Chrome OS 41, Noto Color Emoji è il font predefinito per la maggior parte degli emoji.
I dispositivi Android supportano gli emoji in modo diverso a seconda della versione del sistema operativo. Gli emoji nativi sono supportati da Android da luglio 2013, con l'arrivo di Android 4.3, e dalla tastiera di Google da novembre 2013 per i dispositivi con Android 4.4 e versioni successive. Android 7.0 Nougat ha introdotto gli emoji di Unicode 9 e i modificatori del colore della pelle, oltre a cambiare il design di molti emoji esistenti.
Gli emoji sono supportati anche dall'applicazione Google Hangouts (che è indipendente dalla tastiera impiegata), sia in modalità Hangouts che SMS. Diverse applicazioni di messaggistica e altrettante tastiere di terze parti (come IQQI Keyboard) per dispositivi Android forniscono plug-in che consentono l'uso di emoji. Con Android 8 (Oreo), Google ha aggiunto una library di compatibilità che, se inclusa dagli sviluppatori di app, rende disponibili gli emoji di Noto più recenti su qualsiasi piattaforma a partire da Android 4.3.
I sistemi operativi Android Stock includono i glifi Noto per la visualizzazione di emoji, sebbene le singole app di social media possano utilizzare i propri glifi (vedi sotto). Tuttavia, HTC e LG (due aziende di produzione di smartphone) hanno distribuito varianti di NotoColorEmoji.ttf con glifi personalizzati fino al 2017, e Samsung lo fa ancora. Alcuni gestori di telefonia mobile giapponesi erano soliti dotare i dispositivi Android brandizzati di glifi emoji più simili a quelli originali, ma a quanto pare hanno smesso di aggiornarli intorno al 2015.

### Apple

Apple ha introdotto per la prima volta gli emoji nel proprio sistema operativo desktop in concomitanza con l'uscita di OS X 10.7 Lion nel 2011. A partire da allora, gli utenti possono visualizzare gli emoji inviati tramite e-mail e applicazioni di messaggistica (comunemente condivisi dagli utenti iPhone) così come qualsiasi altra applicazione. Gli utenti possono inoltre inserire emoji utilizzando il pannello di input speciale "Caratteri" da quasi tutte le applicazioni native selezionando il menu "Modifica" e scorrendo verso il basso fino a "Caratteri speciali", o tramite la combinazione di tasti Command+Option+T. Gli utenti possono anche inserire questi simboli impostando la tastiera su Unicode, tenendo premuto ⌥ Option e digitando l'input esadecimale Unicode. Ad esempio, tenendo premuto⌥ Option+2+6+3+A verrebbe inserito l'emoji ☺. Il sistema operativo desktop utilizza il font Apple Color Emoji precedentemente introdotto in iOS, dando agli utenti la possibilità di impiegare pittogrammi multicolore.
La tastiera emoji è stata resa disponibile per la prima volta in Giappone con l'uscita della versione 2.2 di iPhone OS nel 2008. La tastiera emoji non è stata ufficialmente resa disponibile al di fuori del Giappone fino alla versione 5.0 di iOS. Da iPhone OS 2.2 a iOS 4.3.5 (2011), gli utenti al di fuori del Giappone potevano accedere alla tastiera ma dovevano utilizzare un'app di terze parti per abilitarla. La prima di queste app è stata sviluppata da Josh Gare; ed è proprio a queste app che viene attiribuito il merito di aver permesso agli emoji di entrare nella cultura popolare. iOS è stato aggiornato per supportare i modificatori del colore della pelle di Fitzpatrick con la versione 8.3.
OS X 10.9 Mavericks ha introdotto una palette dedicata per l'input degli emoji nella maggior parte delle caselle di input di testo all'interno del visualizzatore caratteri del Mac con la combinazione di tastiCommand+Ctrl+Space. Altrimenti, gli utenti possono modificare le impostazioni della tastiera in modo tale che il visualizzatore caratteri venga richiamato premendo soltanto il tasto Fn. A partire da macOS Big Sur, il tasto viene anche rappresentato dall'icona del globo 🌐 per coerenza tra macOS e iOS: quest'ultimo utilizza il tasto globo come tasto funzione per passare ad altri layout di tastiera, sia quello degli emoji sia quelli internazionali.
Apple ha reso noto che la "faccina che piange di gioia" è l'emoji più popolare tra gli americani di lingua inglese. Al secondo posto c'è l'emoji del "cuore" seguita dalla "faccina che piange disperatamente".
Il 17 luglio 2018, in occasione della Giornata mondiale degli emoji, Apple ha annunciato che avrebbe aggiunto altri 70 emoji con il suo aggiornamento iOS del 2018, tra cui i tanto attesi emoji calvi, e con capelli rossi, bianchi e ricci.
Il 12 settembre 2017, Apple ha annunciato che l'app Messaggi sugli iPhone con Face ID avrebbe ricevuto gli "Animoji", ossia versioni di emoji standard animate su misura grazie al motion capture facciale per riflettere le espressioni del mittente. Questi Animoji supportano anche la sincronizzazione labiale: in questo modo, possono recitare i messaggi audio registrati dal mittente. Apple aveva creato modelli 3D di tutti gli emoji standard prima degli aggiornamenti del sistema operativo di fine 2016 da cui era stata renderizzata la grafica 2D statica predefinita: alcuni di questi modelli è stato riutilizzato per creare immagini fisse e brevi animazioni in modo dinamico.
Con l'uscita di iOS 13, Apple ha introdotto "Memoji", che consente l'utilizzo di un avatar che un utente può utilizzare per personalizzare i messaggi; questa funzione non richiede Face ID.

### Linux

Ubuntu 18.04 e Fedora 28 supportano gli emoji colorati per impostazione predefinita, attraverso l'impiego di Noto Color Emoji. Alcune distribuzioni Linux richiedono l'installazione di caratteri aggiuntivi. Gli emoji colorati sono supportati da FreeType e Cairo.

### Microsoft Windows

Un aggiornamento di Windows 7 e Windows Server 2008 R2 ha importato un sottoinsieme del set Unicode monocromatico in tali sistemi operativi come componenti del carattere Segoe UI Symbol. A partire dall'anteprima di Windows 8.1, è stato incluso il font Segoe UI Emoji, dotato di pittogrammi colorati. Il semplice font Segoe UI manca di emoji, a differenza di UI Symbol e Segoe UI Emoji.
Gli emoji sono accessibili tramite il tasto 😀 della tastiera su schermo, o tramite la scorciatoia da tastiera fisica⊞ Win+..
A differenza di macOS e iOS, i glifi a colori sono disponibili se quando l'applicazione supporta l'API DirectWrite di Microsoft e se Segoe UI Emoji è esplicitamente dichiarato; altrimenti, vengono visualizzati glifi monocromatici. Il formato COLR/CPAL di Microsoft per i caratteri multicolori come Segoe UI Emoji è supportato dalle versioni correnti di diversi browser su Windows (inclusi Firefox, Google Chrome, Internet Explorer e Microsoft Edge), ma non da molte applicazioni grafiche.
Windows 10 Anniversary Update ha aggiunto gli emoji di Unicode 9.
Nell’agosto 2022, Microsoft ha reso open source più di 1.500 dei suoi emoji 3D per consentire ai creatori di remixarli e personalizzarli: la libreria è disponibile su Figma e GitHub .

### Social

Facebook e Twitter sostituiscono tutti gli emoji Unicode utilizzati con la propria grafica personalizzata sui rispettivi siti Web.
Prima di ottobre 2017, Facebook aveva diversi set di emoji per il suo sito principale e per il suo servizio Messenger, ma solo il primo dei due è dotato di una copertura completa. Messenger ora utilizza gli emoji Apple su iOS e il principale set di Facebook altrove. Le reazioni di Facebook sono solo parzialmente compatibili con gli emoji standard.
Twitter ha reso disponibile Twemoji (la sua grafica emoji) assieme a una libreria JavaScript per gestirli, rispettivamente sotto licenza Creative Commons CC-BY 4.0 e licenza open-source MIT.

### Altri fornitori di font emoji

La versione 2.2 EmojiOne, un font open source disponibile dietro licenza di contenuto gratuita, supporta l'intero set di emoji a colori tramite Unicode Emoji 3.0, ovvero Unicode 9.0. Le versioni più recenti di EmojiOne, da quando sono state ribattezzate JoyPixels, supportano le versioni Unicode Emoji più recenti e utilizzano una licenza più rigorosa che non consente la ridistribuzione delle immagini vettoriali, mentre la versione 2.x "non è più supportata né distribuita". EmojiTwo, un fork open source di EmojiOne 2.2, mira ad aggiungere tutti gli emoji dal 2017 in poi.
Nell'ambito del progetto Firefox OS (ormai fuori produzione), Mozilla ha sviluppato un font emoji chiamato FxEmojis. Mozilla include anche una versione del font Twemoji di Twitter convertito in un font stratificato COLR/CPAL chiamato "Twemoji Mozilla". Le versioni precedenti di quest'ultimo progetto Mozilla includevano invece il font EmojiOne Mozilla.
Il carattere Symbola contiene tutti gli emoji fino alla versione 10.0 come normali glifi monocromatici. Fino alla versione 10, Symbola è stato reso disponibile senza licenza né alcuna restrizione d'uso; tuttavia, a partire dalla versione 11, uscita nel 2018, Symbola è stato protetto da copyright con divieto di uso commerciale e opere derivate. Altri caratteri tipografici, tra cui un ampio numero di emoji, includono Noto Emoji, Adobe Source Emoji e Quivira.