Qual è la differenza tra ASCII e testo Unicode?

Qual è la differenza tra ASCII e testo Unicode?

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





L'America contro l'universo

L'American Standard Code for Information Interchange (ASCII), ovviamente, si rivolge a un pubblico americano, scrivendo in alfabeto inglese. Si occupa di lettere non accentate, come A-Z e a-z, oltre a un piccolo numero di simboli di punteggiatura e caratteri di controllo.





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





Al contrario, l'Universal Coded Character Set (Unicode) si trova all'estremità opposta della scala dell'ambizione. Unicode tenta 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, le emoji.

Set di caratteri o codifica dei caratteri?

In parole povere, un set di caratteri è una selezione di caratteri (ad es. A-Z) mentre una codifica di caratteri è 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 ciascun carattere a un valore numerico.

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





Taglia

A causa del suo ambito, Unicode rappresenta molti più caratteri di ASCII. L'ASCII standard utilizza un intervallo di 7 bit per codificare 128 distinti caratteri . 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 così quando inizi ad approfondire i dettagli!





Un confronto più utile è quanti script (o sistemi di scrittura) sono attualmente supportati. Naturalmente, 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.

Magazzinaggio

L'intervallo a 7 bit di ASCII significa che ogni carattere è memorizzato in un singolo byte a 8 bit; il bit di riserva non è utilizzato nello standard ASCII. 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:

come visualizzare la password wifi salvata su Android?
$ echo -n 'Hello, world' > foo

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

$ file foo
foo: ASCII text, with no line terminators

Infine, per ottenere il numero esatto di byte che occupa il file, usiamo il tasto stato comando:

$ stat -f%z foo
12

Poiché lo standard Unicode si occupa di una gamma di caratteri molto più ampia, un file Unicode occupa naturalmente più spazio di archiviazione. Esattamente quanto dipende 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 '€' > foo
$ file foo
foo: UTF-8 Unicode text, with no line terminators
$ stat -f%z foo
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à tra uno e quattro byte, con l'intento che i caratteri più comuni richiedono 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, qualsiasi testo ASCII è anche 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 carattere fuori limite verrà visualizzato in modo imprevisto, spesso con caratteri sostituiti completamente diversi da quelli previsti.

Uso moderno

Per la maggior parte degli scopi, ASCII è in gran parte considerato uno standard legacy. Anche in situazioni che supportano solo lo script latino, dove non è necessario il pieno supporto per le complessità di Unicode, ad esempio, di solito è più conveniente usare UTF-8 e sfruttare la sua compatibilità ASCII.

come collegare iphone a lg tv usando usb

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 ha avuto luogo 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.

Imparentato: Le 100 emoji più popolari spiegate

ASCII contro Unicode

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

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

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

Leggi Avanti
Argomenti correlati
  • La tecnologia spiegata
  • emoji
  • Gergo
  • Cultura Web
  • Unicode
Circa l'autore Bobby Jack(58 articoli pubblicati)

Bobby è un appassionato di tecnologia che ha lavorato come sviluppatore software per quasi due decenni. È appassionato di giochi, lavora come editor di recensioni presso 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 consigli tecnici, recensioni, ebook gratuiti e offerte esclusive!

Clicca qui per iscriverti