ArcadiA Club
|
|
||||||
| AAC FORUM AAC News AAC Box | ||||||
|
- Le codifiche ISO, Windows ANSI e
Unicode (UTF) -
|
|||
COSA SERVE PER QUESTO TUTORIAL | |||
Chiedi sul FORUM | Glossario | cognizioni basiche di un qualsiasi linguaggio .Net | ||
Differenze, vantaggi e svantaggi delle varie codifiche | |||
CODIFICHE E "PLAIN TEXT" Un primo sguardo al confuso insieme delle codifiche.
La questione degli encoding è lunga e ha sempre creato grande confusione
nei programmatori, l'obiettivo di questo articolo è chiarire le idee
sulle varie codifiche e come comportarsi di fronte ad ognuna. Ma prima
una piccola introduzione. I sistemi di codifica più semplici: ASCII, ISO e ANSI (codepage di Windows). La codifica più conosciuta è probabilmente ASCII (acronimo per American Standard Code for Information Interchange), un set in grado di rappresentare 128 caratteri per byte (ovvero un bit viene ignorato, si tratta infatti di fatto di una codifica a 7 bit) tra i quali vi sono i principali segni di punteggiatura, le cifre decimali e le lettere dell'alfabeto inglese maiuscole e minuscole; nonostante la sua fama (principalmente dovuta alla sua diffusione come base di altri set di caratteri e alla sua semplicità) ASCII risulta di per sé scarsamente utile, in quanto non è in grado di rappresentare alcun carattere accentato, alfabeti differenti da quello inglese o tantomeno ideogrammi di lingue orientali. Per questo esistono una serie di altre codifiche che sfruttando il bit inutilizzato riescono ad rappresentare altre 128 configurazioni oltre a quelle di base del set ASCII. Le più note tra queste codifiche a byte singolo sono quelle dello standard ISO-8859 (ufficialmente ISO/IEC 8859):
Tutti questi set di caratteri occupano solamente un byte e risultano particolarmente utili per salvare, memorizzare o trasmettere dati che utilizzano i caratteri di un solo gruppo delle culture suddette. Le codifiche in circolazione sono poi ovviamente molte di più, ma oltre a quelle dello standard ISO vogliamo qui ricordare un tipo di codifiche con il quale ci si viene a scontrare molto spesso nell'ambito dello sviluppo: le codifiche di Windows (dette anche code page). Ecco la lista di quelle disponibili:
Queste codifiche sono basate su una bozza che ANSI (l'American National Standards Institute) aveva proposto ma non sono mai state standardizzate, e per questo le codifiche ISO sono sempre da preferirsi. Un problema frequente con queste codifiche ANSI è proprio il rischio di confonderle con le corrispondenti versioni ISO, in primis Latin-1 e il Windows-1252. Sebbene la codifica Windows-1252 sia un superset di Latin-1 (ovvero sia con essa del tutto compatibile) è bene non fare confusione e comunque usare sempre la versione ISO, possibilmente Latin-9, in quanto include anche il simbolo dell'Euro. Si badi però che Latin-9 non è invece compatibile con Windows-1252, ad esempio il Latin-9 il simbolo dell'euro corrisponde alla posizione 164 (A4 in esadecimale), mentre per Windows-1252 è in 128 (80 in esadecimale). CODIFICHE MULTY-BYTELo standard Unicode.
Le codifiche a byte singolo sono molto compatte ma anche molto limitate,
permettono infatti un numero piuttosto limitato di caratteri (al massimo
256), fatto che genera problemi non solamente nel caso in cui si debba
usare testo in lingue differenti, ma anche in una singola. In questo
articolo ci occuperemo delle codifiche multi-byte definite dallo
standard Unicode, che ha raggiunto l'obiettivo di riunire in un
unico standard tutti i caratteri esistenti. Esso comprende 1'114'112
caratteri (da U+0 a U+10FFFF) suddivisi in 17 "piani" da 65'536
caratteri l'uno, il primo piano (piano 0) è detto Basic Multilingual
Plane (abbreviato BMP) e contiene tutti caratteri necessari
per rappresentare le lingue moderne, gli altri contengono caratteri
supplementari o sono riservati per utilizzi futuri.
A questo sorge spontanea la domanda: quale usare? Innanzitutto va
detto che le codifiche Unicode sono da preferirsi a quelle viste in
precedenza, e in secondo luogo la risposta è che dipende. Usare UCS-2
è del tutto sconsigliabile in quanto esiste UTF-16 che è con esso
compatibile ma può l'intero set Unicode. UTF-32 (o UCS-4)
è usato di rado, poiché, sebbene minimizzi l'uso del processore
nell'elaborazione, richiede l'impiego di 4 byte anche per rappresentare
il BMP o addirittura i caratteri del set ASCII (mentre in UTF-8 bastano
da 1 a 3 e in UTF-16 sono sufficienti 2). Le codifiche nel mondo del web e nei formanti documentali principali.
Se ci si sta chiedendo quali siano le codifiche più diffuse sul web la
risposta è che c'è veramente di tutto, spesso in gran confusione.
Tuttavia alcune codifiche godono di particolare privilegi, in
particolare ISO-8859-1 (Latin-1), UTF-8, UTF-16 e
purtroppo Windows-1252. Latin-1 è, secondo le specifiche,
la codifica di default per i dati che hanno MIME type che comincia per
"text/" trasmessi tramite HTTP. UTF-8 e UTF-16 sono invece
un requisito obbligatorio per tutti i parser XML e in
particolare, in caso la codifica non sia specificata è da intendersi
come UTF-8. Infine Windows-1252 (ANSI) è la codifica di default
in molti sistemi operativi Windows ed è per questo molto diffusa in
editor HTML e di conseguenza sul web.
|
|||
<< INDIETRO | by VeNoM00 |
| |||||||||||
^ TOP | |||||||||||
pubblicità |
privacy |
visione |
diritti |
ufficio stampa |
donazioni |
scrivici |
|||||||||||