Quali sono le codifiche dei caratteri come ANSI e Unicode e come differiscono?
ASCII, UTF-8, ISO-8859 ... Potresti aver visto questi strani moniker fluttuare, ma cosa significano in realtà? Continua a leggere mentre spieghiamo cos'è la codifica dei caratteri e come questi acronimi si riferiscono al testo normale che vediamo sullo schermo.
Blocchi fondamentali
Quando parliamo di linguaggio scritto, parliamo di lettere che sono gli elementi costitutivi delle parole, che poi costruiscono frasi, paragrafi e così via. Le lettere sono simboli che rappresentano i suoni. Quando parli di linguaggio, parli di gruppi di suoni che si uniscono per formare una sorta di significato. Ogni sistema linguistico ha un insieme complesso di regole e definizioni che governano questi significati. Se hai una parola, è inutile se non sai da che lingua proviene e la usi con altri che parlano quella lingua.
(Confronto tra script di Grantha, Tulu e Malayalam, Immagine da Wikipedia)
Nel mondo dei computer, usiamo il termine "carattere". Un personaggio è una specie di concetto astratto, definito da parametri specifici, ma è l'unità fondamentale di significato. Il latino "A" non è lo stesso di un "alfa" greco o un "alif" arabo perché hanno contesti diversi - sono di lingue diverse e hanno pronunce leggermente diverse - quindi possiamo dire che sono caratteri diversi. La rappresentazione visiva di un personaggio è chiamata "glifo" e diversi set di glifi sono chiamati caratteri. Gruppi di personaggi appartengono a un "set" o a un "repertorio".
Quando digiti un paragrafo e cambi il carattere, non stai cambiando i valori fonetici delle lettere, stai cambiando il loro aspetto. È solo cosmetico (ma non irrilevante!). Alcune lingue, come l'antico egiziano e il cinese, hanno ideogrammi; questi rappresentano intere idee invece di suoni, e le loro pronunce possono variare nel tempo e nella distanza. Se sostituisci un personaggio con un altro, stai sostituendo un'idea. È più che cambiare le lettere, sta cambiando un ideogramma.
Codifica dei caratteri
(Immagine da Wikipedia)
Quando digiti qualcosa sulla tastiera o carichi un file, come fa il computer a sapere cosa visualizzare? Ecco a cosa serve la codifica dei caratteri. Il testo sul tuo computer non è in realtà lettere, è una serie di valori alfanumerici accoppiati. La codifica dei caratteri agisce come una chiave per cui i valori corrispondono a quali caratteri, proprio come l'ortografia detta quali suoni corrispondono a quali lettere. Il codice Morse è una sorta di codifica dei caratteri. Spiega come i gruppi di unità lunghe e corte come i bip rappresentano i personaggi. Nel codice Morse, i personaggi sono solo lettere, numeri e punti fermi in inglese. Ci sono molte codifiche di caratteri del computer che si traducono in lettere, numeri, segni di accento, segni di punteggiatura, simboli internazionali e così via.
Spesso su questo argomento viene utilizzato anche il termine "code page". Sono essenzialmente codifiche dei caratteri utilizzate da società specifiche, spesso con lievi modifiche. Ad esempio, la tabella codici 1252 di Windows (precedentemente nota come ANSI 1252) è una forma modificata di ISO-8859-1. Sono principalmente utilizzati come sistema interno per fare riferimento a codifiche di caratteri standard e modificati che sono specifici per gli stessi sistemi. All'inizio, la codifica dei caratteri non era così importante perché i computer non comunicavano tra loro. Con l'aumento di Internet in primo piano e il networking come evento comune, è diventato un aspetto sempre più importante delle nostre vite quotidiane senza che nemmeno noi ce ne accorgiamo.
Molti tipi differenti
(Immagine da sarah sosiak)
Ci sono molte codifiche di personaggi diversi là fuori, e ci sono molte ragioni per questo. La codifica dei caratteri che scegli di utilizzare dipende da quali sono le tue esigenze. Se comunichi in russo, ha senso usare una codifica di caratteri che supporti bene il cirillico. Se comunichi in coreano, allora vorrai qualcosa che rappresenti bene Hangul e Hanja. Se sei un matematico, allora vuoi qualcosa che ha tutti i simboli scientifici e matematici rappresentati bene, così come i glifi greci e latini. Se sei un burlone, forse trarrai beneficio dal testo capovolto. E, se vuoi che tutti quei tipi di documenti siano visualizzati da una determinata persona, vuoi una codifica abbastanza comune e facilmente accessibile.
Diamo un'occhiata ad alcuni dei più comuni.
(Estratto di tabella ASCII, Immagine da asciitable.com)
- ASCII - Il codice standard americano per lo scambio di informazioni è una delle codifiche di caratteri precedenti. È stato originariamente concepito sulla base di codici telegrafici e si è evoluto nel tempo per includere più simboli e alcuni caratteri di controllo non stampati ormai obsoleti. Probabilmente è di base come si può ottenere in termini di sistemi moderni, in quanto è limitato all'alfabeto latino senza caratteri accentati. La sua codifica a 7 bit consente solo 128 caratteri, motivo per cui esistono diverse varianti non ufficiali in uso in tutto il mondo.
- ISO-8859 - Il gruppo di codifiche di caratteri più comunemente utilizzato dalla International Organization for Standardization è il numero 8859. Ogni codifica specifica è indicata da un numero, spesso preceduto da un moniker descrittivo, ad es. ISO-8859-3 (Latin-3), ISO-8859-6 (latino / arabo). È un superset di ASCII, il che significa che i primi 128 valori nella codifica sono gli stessi di ASCII. È a 8 bit, tuttavia, e consente 256 caratteri, quindi si costruisce da lì e include una gamma molto più ampia di caratteri, con ogni codifica specifica che si concentra su un diverso insieme di criteri. Latin-1 includeva un gruppo di lettere e simboli accentati, ma in seguito è stato sostituito con un set rivisto chiamato Latin-9 che include glifi aggiornati come il simbolo dell'euro.
(Estratto di script tibetano, Unicode v4, da unicode.org)
- Unicode - Questo standard di codifica mira all'universalità. Attualmente include 93 script organizzati in diversi blocchi, con molti altri in lavorazione. Unicode funziona in modo diverso rispetto ad altri set di caratteri in quanto invece di codificare direttamente per un glifo, ogni valore è indirizzato oltre a un "punto di codice". Questi sono valori esadecimali che corrispondono a caratteri ma gli stessi glifi sono forniti in modo distaccato dal programma , come il tuo browser web. Questi punti di codice sono comunemente rappresentati come segue: U + 0040 (che si traduce in '@'). Le codifiche specifiche secondo lo standard Unicode sono UTF-8 e UTF-16. UTF-8 tenta di consentire la massima compatibilità con ASCII. È a 8 bit, ma consente tutti i personaggi tramite un meccanismo di sostituzione e più coppie di valori per carattere. UTF-16 elimina perfettamente la compatibilità ASCII per una compatibilità a 16 bit più completa con lo standard.
- ISO-10646 - Questa non è una vera codifica, solo un set di caratteri di Unicode che è stato standardizzato dall'ISO. È soprattutto importante perché è il repertorio di personaggi usato dall'HTML. Alcune delle funzioni più avanzate fornite da Unicode che consentono la fascicolazione e la scrittura da destra a sinistra e da sinistra a destra sono mancanti. Tuttavia, funziona molto bene per l'uso su Internet in quanto consente l'utilizzo di un'ampia varietà di script e consente al browser di interpretare i glifi. Ciò rende la localizzazione un po 'più semplice.
Che codifica dovrei usare?
Bene, ASCII funziona per la maggior parte degli anglofoni, ma non per molto altro. Più spesso vedrai ISO-8859-1, che funziona per la maggior parte delle lingue dell'Europa occidentale. Le altre versioni di ISO-8859 funzionano per cirillico, arabo, greco o altri script specifici. Tuttavia, se si desidera visualizzare più script nello stesso documento o sulla stessa pagina Web, UTF-8 consente una migliore compatibilità. Funziona anche molto bene per le persone che usano la punteggiatura, i simboli matematici o i simboli fuori-polsino appropriati, come i quadrati e le caselle di controllo.
(Più lingue in un documento, Screenshot di gujaratsamachar.com)
Ci sono tuttavia degli svantaggi in ogni set. ASCII è limitato nei segni di punteggiatura, quindi non funziona molto bene per le modifiche tipograficamente corrette. Scrivi mai copia / incolla da Word solo per avere una strana combinazione di glifi? Questo è lo svantaggio di ISO-8859, o più correttamente, della sua supposta inter-operabilità con le code page specifiche del sistema operativo (stiamo guardando voi, Microsoft!). Il principale svantaggio di UTF-8 è la mancanza di un adeguato supporto nelle applicazioni di modifica e pubblicazione. Un altro problema è che i browser spesso non interpretano e mostrano semplicemente il marchio di ordine dei byte di un carattere codificato UTF-8. Ciò comporta la visualizzazione di glifi indesiderati. E, naturalmente, dichiarare una codifica e utilizzare caratteri da un altro senza dichiararli / riferirli correttamente su una pagina Web rende difficile per i browser renderli correttamente e per i motori di ricerca indicizzarli in modo appropriato.
Per i tuoi documenti, manoscritti e così via, puoi usare tutto ciò che ti serve per portare a termine il lavoro. Per quanto riguarda il web, tuttavia, sembra che molte persone siano d'accordo nell'usare una versione UTF-8 che non utilizza un marchio di ordinamento dei byte, ma non è del tutto unanime. Come puoi vedere, ogni codifica di caratteri ha il suo uso, contesto, punti di forza e punti deboli. Come utente finale, probabilmente non dovrai occupartene, ma ora puoi fare un ulteriore passo in avanti se lo desideri.