UTF-7, UTF-8, UTF-16 e UTF-32 sono semplicemente formati di trasformazione algoritmica dello stesso coding (codepoint) di caratteri. Sono codifiche di un sistema di codifica dei caratteri.
Sono anche algoritmicamente più facili da navigare in avanti e indietro rispetto alla maggior parte degli schemi precedenti per gestire set di caratteri più grandi di 256 caratteri.
Questo è molto diverso rispetto alla codifica dei glifi, in genere nazionale e talvolta specifica del fornitore. Solo in giapponese c'erano un sacco di varianti di JIS da solo, per non parlare della EUC-JP e della trasformazione orientata alla codepage di JIS che le macchine DOS / Windows utilizzavano chiamate Shift-JIS. (In una certa misura, ci sono state trasformazioni algoritmiche di questi, ma non erano particolarmente semplici e c'erano differenze specifiche dei vendor nei personaggi disponibili. Moltiplicate questo per un paio di centinaia di paesi e l'evoluzione graduale di sistemi di font più sofisticati (post greenscreen era), e hai avuto un vero incubo.
Perché avresti bisogno di queste forme di trasformazione di Unicode? Poiché molti sistemi legacy assumevano sequenze di caratteri a 7 bit di intervallo ASCII, quindi era necessaria una soluzione pulita a 7 bit che trasmettesse in modo sicuro i dati non corretti attraverso tali sistemi, quindi era necessario UTF-7. Poi c'erano sistemi più moderni che potevano gestire set di caratteri a 8 bit, ma in genere i valori null avevano significati speciali, quindi UTF-16 non funzionava per loro. 2 byte potevano codificare l'intero piano multilingue multilingue di Unicode nella sua prima incarnazione, quindi UCS-2 sembrava un approccio ragionevole per i sistemi che sarebbero stati "Unicode aware da zero" (come Windows NT e Java VM); quindi le estensioni oltre a ciò richiedevano caratteri aggiuntivi, che portavano alla trasformazione algoritmica dei 21 bit di codifica che erano riservati dallo standard Unicode, e nacquero coppie surrogate; che ha richiesto UTF-16. Se avevi qualche applicazione in cui la consistenza della larghezza dei caratteri era più importante dell'efficienza di archiviazione, UTF-32 (una volta chiamato UCS-4) era un'opzione.
UTF-16 è l'unica cosa che è remota da gestire, e che è facilmente mitigata dalla piccola gamma di caratteri che sono interessati da questa trasformazione e dal fatto che le sequenze principali a 16 bit sono ordinatamente in una gamma completamente distinta dalle sequenze finali a 16 bit. È anche più facile mondi che cercare di andare avanti e indietro in molte prime codifiche dell'Asia orientale, dove o hai bisogno di una macchina di stato (JIS e EUC) per gestire le sequenze di escape, o potenzialmente tornare indietro di diversi personaggi finché non hai trovato qualcosa che era garantito essere solo un byte guida (Shift-JIS). UTF-16 ha avuto alcuni vantaggi sui sistemi che potrebbero eseguire il chug attraverso sequenze a 16 bit in modo efficiente.
A meno che non si debbano vivere le dozzine (centinaia, in realtà) di diverse codifiche là fuori, o si debbano costruire sistemi che supportano più lingue in codifiche diverse a volte anche nello stesso documento (come WorldScript nelle vecchie versioni di MacOs), potreste pensare ai formati di trasformazione unicode come a una complessità inutile. Ma è una drammatica riduzione della complessità rispetto alle alternative precedenti e ogni formato risolve un reale vincolo tecnico. Sono anche davvero convertibili in modo efficiente tra loro, senza richiedere tabelle di ricerca complesse.