UTF-8: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
m Annullate le modifiche di 2.34.137.221 (discussione), riportata alla versione precedente di FrescoBot
Niculinux (discussione | contributi)
Wikificazione
Riga 3:
'''UTF-8''' (Unicode Transformation Format, 8 bit) è una [[codifica dei caratteri]] [[Unicode]] in sequenze di lunghezza variabile di byte, creata da [[Rob Pike]] e [[Ken Thompson]]. UTF-8 usa gruppi di byte per rappresentare i caratteri [[Unicode]], ed è particolarmente utile per il trasferimento tramite sistemi di [[posta elettronica]] a 8-[[Bit (informatica)|bit]].
 
== Cenni storici ==
UTF-8 è stato ideato da [[Ken Thompson]] e [[Rob Pike]] il 2 settembre [[1992]] su una tovaglietta in una tavola calda del [[New Jersey]]. Il giorno dopo Pike e Thompson l'hanno implementato e hanno aggiornato [[Plan 9]], il loro [[Sistema operativo]], per usarlo.
 
UTF-8 è stato presentato ufficialmente nel gennaio del [[1993]] a [[San Diego (California)|San Diego]] in occasione della conferenza annuale di [[Usenix]].
 
== Carattedristiche generali ==
UTF-8 usa da 1 a 4 [[byte]] per rappresentare un carattere Unicode. Per esempio un solo byte è necessario per rappresentare i 128 caratteri dell'alfabeto [[ASCII]], corrispondenti alle posizioni Unicode da U+0000 a U+007F.
 
Line 9 ⟶ 15:
La [[Internet Engineering Task Force|IETF]] (''Internet Engineering Task Force'') richiede che tutti i [[Protocollo di rete|protocolli]] [[Internet]] identifichino la codifica dei caratteri utilizzata, e che siano in grado di utilizzare almeno UTF-8.
 
== Descrizione tecnica==
UTF-8 viene descritto nello standard RFC 3629 (''UTF-8, un formato di trasformazione dell'[[ISO 10646]]'').Brevemente, i bit che compongono un carattere Unicode vengono suddivisi in gruppi, che vengono poi ripartiti tra i bit meno significativi all'interno dei byte che formano la codifica UTF-8 del carattere.
 
Brevemente, i bit che compongono un carattere Unicode vengono suddivisi in gruppi, che vengono poi ripartiti tra i bit meno significativi all'interno dei byte che formano la codifica UTF-8 del carattere.
 
I caratteri il cui valore unicode è inferiore a U+0080 vengono rappresentati con un singolo byte contenente il loro valore; essi corrispondono esattamente ai 128 caratteri ASCII.
 
I caratteri il cui valore unicode è inferiore a U+0080 vengono rappresentati con un singolo byte contenente il loro valore; essi corrispondono esattamente ai 128 caratteri ASCII. In tutti gli altri casi sono necessari fino a 4 byte, ognuno di questi con il bit più significativo impostato a 1, in modo da distinguerli dalla rappresentazione dei caratteri dell'alfabeto ASCII a 7 bit, in particolare quelli il cui codice unicode è inferiore a U+0020, tradizionalmente utilizzati come caratteri di controllo.
 
<small>
Line 67 ⟶ 69:
== Caratteristiche di UTF-8 ==
In conseguenza dei meccanismi di funzionamento di UTF-8, le sequenze di byte godono di queste proprietà:
 
* Il bit più significativo di ogni sequenza composta di un singolo byte è sempre 0.
* I bit più significativi del primo di una sequenza di più byte indicano la lunghezza della sequenza. Questi bit sono 110 per le sequenze di due byte, e 1110 per quelle di tre.
* I byte successivi al primo in una sequenza composta da più byte hanno sempre 10 come bit più significativi.
 
UTF-8 è stato progettato per soddisfare queste tre proprietà, in modo da garantire che nessuna sequenza di byte corrispondente a uno specifico carattere sia contenuta in una sequenza più lunga, usata per codificare un carattere diverso. Grazie a questa caratteristica la ricerca di parole o frasi all'interno di un testo può essere effettuata tramite confronto byte per byte; qualche precedente sistema di codifica basato su sequenze di lunghezza variabile di byte (per esempio [[Shift-JIS]]) non godeva di questa proprietà, rendendo gli [[Algoritmo|algoritmi]] di confronto tra stringhe complicati. Nonostante si possa obiettare che questa caratteristica aggiunga ridondanza alla codifica del testo, i vantaggi sono maggiori degli svantaggi; inoltre la compressione dei dati non è uno degli scopi di Unicode, e va considerata separatamente. Infine, ancora grazie a questa proprietà, se uno o più byte andassero persi per errori di trasmissione o per corruzione dei dati, sarebbe possibile risincronizzare la decodifica all'inizio del carattere successivo, limitando i danni.
 
Line 101 ⟶ 105:
* Un ''decoder'' mal programmato (e non conforme alle ultime versioni dello standard) potrebbe accettare diverse pseudo-codifiche UTF-8 e convertirle nello stesso carattere Unicode, scavalcando in questo modo eventuali controlli di sicurezza progettati per lavorare su rappresentazioni dei dati a 8 bit.
* Gli ideogrammi vengono rappresentati in UTF-8 con tre byte, mentre ne richiedono solo due in UTF-16. Di conseguenza i testi in [[Lingua cinese|Cinese]] / [[Lingua giapponese|Giapponese]] / [[Lingua coreana|Coreano]], oltre ad alcuni gruppi di caratteri Unicode meno noti, occupano più spazio quando vengono codificati con UTF-8.
 
== Storia ==
UTF-8 è stato ideato da [[Ken Thompson]] e [[Rob Pike]] il 2 settembre [[1992]] su una tovaglietta in una tavola calda del [[New Jersey]]. Il giorno dopo Pike e Thompson l'hanno implementato e hanno aggiornato [[Plan 9]], il loro [[Sistema operativo]], per usarlo.
 
UTF-8 è stato presentato ufficialmente nel gennaio del [[1993]] a [[San Diego (California)|San Diego]] in occasione della conferenza annuale di [[Usenix]].
 
== Note ==
Line 111 ⟶ 110:
 
== Voci correlate ==
* [[CharsetASCII]]
* [[ASCII esteso]]
* [[Charset]]
* [[Ken Thompson]]
* [[Rob Pike]]
* [[UTF-16]]
* [[UTF-32]]
* [[UTF-7]]
* [[Charset]]
 
== Collegamenti esterni ==
Line 122 ⟶ 125:
* RFC 2277, La politica della IETF sui set di caratteri e sui linguaggi
* [http://www.utf-8.com/ UTF-8]
 
{{portale|informatica}}
 
[[Categoria:Repertori di caratteri]]