Limplementazione 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 ) è stato aggiunto nella versione 5.5, e è 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.
è un formato rasterizzato policromatico che usa dati bitmap grezzi e dati PNG incorporati, e impiega tabelle per salvare i dati sul formato dell'immagine: pertanto, in alcuni casi questo formato viene chiamato "CBDT/CBLC". è 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 a parte, ragion per cui questo formato viene talvolta chiamato "COLR/CPAL". è 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 (come il ), ma non obbligatoriamente.
Il formato è stato introdotto da Microsoft con Windows 8.1; il da Google, ed è supportato su Android; lo 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 , mentre Edge e Chrome supportano e tutti e quattro supportano .
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 ( e ) 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 . Gli utenti possono anche inserire questi simboli impostando la tastiera su Unicode, tenendo premuto e digitando l'input esadecimale Unicode. Ad esempio, tenendo premuto 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.