ASCII e Unicode sono entrambi standard che fanno riferimento alla rappresentazione digitale del testo, in particolare i caratteri che compongono il testo. Tuttavia, i due standard sono significativamente diversi, con molte proprietà che riflettono il rispettivo ordine di creazione.

America contro l'universo

Non sorprende che l'American Standard Code for Information Interchange (ASCII) si rivolga a un pubblico americano, scrivendo in alfabeto inglese. Si occupa di lettere non accentate, come A-Z e a-z, più un piccolo numero di simboli di punteggiatura e caratteri di controllo.

In particolare, non è possibile rappresentare parole in prestito adottate da altre lingue, come bar in ASCII, senza anglicizzarli sostituendo i caratteri accentati (ad es. bar). Le estensioni ASCII localizzate sono state sviluppate per soddisfare le esigenze di varie lingue, ma questi sforzi hanno reso difficile l'interoperabilità e stavano chiaramente estendendo le capacità di ASCII.

Al contrario, l'Universal Coded Character Set (Unicode) si trova all'estremità opposta della scala delle ambizioni. Unicode cerca di soddisfare il maggior numero possibile di sistemi di scrittura del mondo, nella misura in cui copre le lingue antiche e il set di simboli espressivi preferito da tutti, gli emoji.

instagram viewer

Set di caratteri o codifica dei caratteri?

In termini semplici, un set di caratteri è una selezione di caratteri (ad esempio, A-Z) mentre un carattere la codifica è una mappatura tra un set di caratteri e un valore che può essere rappresentato digitalmente (ad es. A = 1, B = 2).

Lo standard ASCII è effettivamente entrambi: definisce l'insieme di caratteri che rappresenta e un metodo per mappare ogni carattere a un valore numerico.

Al contrario, la parola Unicode viene utilizzata in diversi contesti per indicare cose diverse. Puoi pensarlo come un termine onnicomprensivo, come ASCII, per riferirsi a un set di caratteri e un numero di codifiche. Tuttavia, poiché esistono diverse codifiche, il termine Unicode viene spesso utilizzato per fare riferimento al set complessivo di caratteri, piuttosto che al modo in cui vengono mappati.

Taglia

A causa del suo ambito, Unicode rappresenta molti più caratteri di ASCII. ASCII standard utilizza un intervallo di 7 bit per codificare 128 distinti personaggi. Unicode, d'altra parte, è così grande che abbiamo bisogno di usare una terminologia diversa solo per parlarne!

Unicode si rivolge a 1.111.998 indirizzabili punti di codice. Un punto di codice è più o meno analogo a uno spazio riservato a un personaggio, ma la situazione è molto più complicata di quella quando inizi ad approfondire i dettagli!

Un confronto più utile è il numero di script (o sistemi di scrittura) attualmente supportati. Ovviamente ASCII gestisce solo l'alfabeto inglese, essenzialmente la scrittura latina o romana. La versione di Unicode prodotta nel 2020 va molto oltre: include il supporto per un totale di 154 script.

Conservazione

L'intervallo di 7 bit di ASCII significa che ogni carattere è memorizzato in un singolo byte di 8 bit; il bit di riserva non è utilizzato in ASCII standard. Ciò rende banali i calcoli delle dimensioni: la lunghezza del testo, in caratteri, è la dimensione del file in byte.

Puoi confermarlo con la seguente sequenza di comandi bash. Innanzitutto, creiamo un file contenente 12 lettere di testo:

$ echo -n 'Hello, world'> foo

Per verificare che il testo sia nella codifica ASCII, possiamo usare il file comando:

$ file pippo
pippo: testo ASCII, senza terminatori di riga

Infine, per ottenere il numero esatto di byte occupati dal file, utilizziamo l'estensione statistica comando:

$ stat -f% z pippo
12

Poiché lo standard Unicode si occupa di una gamma di caratteri molto più ampia, un file Unicode occupa naturalmente più spazio di archiviazione. Quanto dipende esattamente dalla codifica.

Ripetendo lo stesso insieme di comandi di prima, utilizzando un carattere che non può essere rappresentato in ASCII, si ottiene quanto segue:

$ echo -n '€'> pippo
$ file pippo
pippo: testo Unicode UTF-8, senza terminatori di riga
$ stat -f% z pippo
3

Quel singolo carattere occupa 3 byte in un file Unicode. Nota che bash ha creato automaticamente un file UTF-8 poiché un file ASCII non può memorizzare il carattere scelto (€). UTF-8 è di gran lunga la codifica dei caratteri più comune per Unicode; UTF-16 e UTF-32 sono due codifiche alternative, ma vengono utilizzate molto meno.

UTF-8 è una codifica a larghezza variabile, il che significa che utilizza diverse quantità di memoria per diversi punti di codice. Ogni punto di codice occuperà da uno a quattro byte, con l'intento che caratteri più comuni richiedano meno spazio, fornendo un tipo di compressione incorporata. Lo svantaggio è che la determinazione dei requisiti di lunghezza o dimensione di una determinata porzione di testo diventa molto più complicata.

ASCII è Unicode, ma Unicode non è ASCII

Per compatibilità con le versioni precedenti, i primi 128 punti di codice Unicode rappresentano i caratteri ASCII equivalenti. Poiché UTF-8 codifica ciascuno di questi caratteri con un singolo byte, anche qualsiasi testo ASCII è un testo UTF-8. Unicode è un superset di ASCII.

Tuttavia, come mostrato sopra, molti file Unicode non possono essere utilizzati in un contesto ASCII. Qualsiasi personaggio fuori dai limiti verrà visualizzato in modo inaspettato, spesso con caratteri sostituiti completamente diversi da quelli previsti.

Uso moderno

Per la maggior parte degli scopi, ASCII è ampiamente considerato uno standard legacy. Anche in situazioni che supportano solo la scrittura latina, dove c'è il pieno supporto per le complessità di Unicode non necessario, ad esempio: di solito è più conveniente usare UTF-8 e trarre vantaggio dal suo ASCII Compatibilità.

In particolare, le pagine web dovrebbero essere salvate e trasmesse utilizzando UTF-8, che è l'impostazione predefinita per HTML5. Questo è in contrasto con il Web precedente, che si occupava di ASCII per impostazione predefinita prima che fosse sostituito dal latino 1.

Uno standard che sta cambiando

L'ultima revisione di ASCII è avvenuta nel 1986.

Al contrario, Unicode continua ad essere aggiornato ogni anno. Nuovi script, personaggi e, in particolare, nuove emoji vengono aggiunti regolarmente. Con solo una piccola parte di questi assegnati, è probabile che l'intero set di caratteri cresca e cresca per il prossimo futuro.

Relazionato: Spiegazione delle 100 emoji più popolari

Spiegazione delle 100 emoji più popolari

Ci sono così tanti emoji, può essere difficile sapere cosa significano tutti. Ecco le emoji più popolari spiegate.

ASCII contro Unicode

ASCII ha servito il suo scopo per molti decenni, ma ora Unicode lo ha effettivamente sostituito per tutti gli scopi pratici diversi dai sistemi legacy. Unicode è più grande e, quindi, più espressivo. Rappresenta uno sforzo collaborativo a livello mondiale e offre una flessibilità di gran lunga maggiore, anche se a scapito di una certa complessità.

E-mail
Che cos'è il testo ASCII e come viene utilizzato?

Il testo ASCII appare criptico, ma ha molti usi su Internet.

Argomenti correlati
  • Spiegazione della tecnologia
  • Emoji
  • Gergo
  • Cultura web
  • Unicode
Circa l'autore
Bobby Jack (23 articoli pubblicati)

Bobby è un appassionato di tecnologia che ha lavorato come sviluppatore di software per quasi due decenni. È appassionato di giochi, lavora come revisore per Switch Player Magazine ed è immerso in tutti gli aspetti dell'editoria online e dello sviluppo web.

Altro da Bobby Jack

Iscriviti alla nostra Newsletter

Iscriviti alla nostra newsletter per suggerimenti tecnici, recensioni, ebook gratuiti e offerte esclusive!

Ancora un passo…!

Conferma il tuo indirizzo e-mail nell'e-mail che ti abbiamo appena inviato.

.