Lo standard ISO 8859, più precisamente ISO/IEC 8859, è uno standard comune ISO ed IEC per la codifica di caratteri ad 8 bit per il trattamento informatico di testi. La norma è divisa in parti numerate pubblicate separatamente (come ISO/IEC 8859-1, ISO/IEC 8859-2, etc), ognuna delle quali può essere riferita informalmente come standard a sé stante. Ci sono attualmente 15 parti definite, escludendo la ISO/IEC 8859-12, abbandonata.
Le parti 1, 2, 3 e 4 della ISO/IEC 8859 sono incluse nello standard ECMA International ECMA-94.
Introduzione Sebbene la sequenza di bit dei 95 caratteri ASCII stampabili (tutte le lettere occidentali non accentate) siano sufficienti per lo scambio di informazioni usando la lingua inglese, molte altre lingue che usano l'alfabeto latino hanno bisogno di simboli addizionali non compresi nell'ASCII, come la ß (tedesco), la ñ (spagnolo), la å (svedese e altre lingue scandinave) o le lettere accentate italiane (à, è, é, ì, ò, ù).
L'ISO 8859 cercò di rimediare a questo problema utilizzando l'ottavo bit del byte, permettendo la definizione di altri 128 caratteri. Questo bit era usato in precedenza per informazioni del protocollo di trasmissione dati oppure era inutilizzato. Comunque, erano necessari più caratteri di quanti potessero stare nella codifica a 8 bit, così furono sviluppate diverse mappe di caratteri, di cui una decina solo per coprire le lingue latine.
Le codifiche ISO 8859-n contengono solo caratteri stampabili, e sono state concepite per essere usate assieme a caratteri di controllo mappati sui valori non assegnati. Molte codifiche registrate presso lo IANA comprendono i codici di controllo C0 (caratteri di controllo mappati sui valori da 0 a 31 inclusi) dello standard ISO 646 e i codici di controllo C1 (caratteri di controllo mappati sui valori da 127 a 159 inclusi) dello standard ISO 6429, dando origine a mappe a 8 bit in cui tutti o quasi i 256 possibili valori risultano assegnati.
L'identificativo MIME preferito per queste codifiche è ISO-8859-n, o alternativamente il loro nome canonico. Le scritture ISO 8859-n e ISO-8859-n sono frequentemente utilizzate indifferentemente. L'identificativo ISO-8859-11 è l'unico di questo insieme a non essere registrato presso lo IANA, probabilmente a causa della sua pressoché totale corrispondenza con il preesistente standard TIS 620, il cui nome è invece registrato.
Caratteri Lo standard ISO 8859 è progettato per un affidabile scambio di informazioni, non per la stampa tipografica; lo standard omette simboli necessari per una stampa di qualità, come le legature opzionali, virgolette, lineette ad altri caratteri. In conseguenza di questo i sistemi tipografici professionali spesso usano estensioni proprietarie (ed incompatibili tra di loro) aggiunte all'ASCII e allo standard ISO 8859, oppure l'Unicode.
In linea di massima sono stati inclusi solo i caratteri e i simboli che già facevano parte di un set di caratteri diffusamente utilizzato e presenti sulle varie versioni nazionali delle tastiere. Furono pertanto incluse le virgolette caporali « e », usate da alcune lingue europee, ma non i doppi apici “ e ” usati dall'inglese e qualche altra lingua. Del francese furono escluse le legature œ e Œ, comunemente trascritte come "oe". La lettera Ÿ, necessaria per la scrittura di testo in maiuscolo, fu anch'essa esclusa. Questi caratteri furono però successivamente inclusi, assieme al simbolo dell'euro "€", dalla codifica ISO 8859-15. Analogamente i caratteri olandesi 'ij' e 'IJ' furono esclusi in quanto usualmente trascritti separatamente come "ij". Del rumeno furono inizialmente escluse le lettere 'Ș/ș' e 'Ț/ț' (lettere con virgola), unificate dal Consorzio Unicode con le lettere 'Ş/ş' e 'Ţ/ţ' (lettere con cediglia) considerando i glifi con la virgola semplici varianti di quelli con la cedilla. Le lettere con la virgola furono successivamente introdotte esplicitamente nello standard Unicode ed inserite nella codifica ISO 8859-16.
La maggior parte delle codifiche ISO 8859 offre i segni diacritici necessari per la trascrizione in caratteri latini di varie lingue europee. Altre offrono anche caratteri non latini, quali il greco, il cirillico, l'ebraico, l'arabo e il thailandese. La maggior parte delle codifiche prevede solo caratteri spaziati (ovvero che prevedono l'avanzamento del cursore), ma quelle tailandese, ebraica e araba contengono anche caratteri combinanti (ovvero la cui emissione non comporta l'avanzamento del cursore). Lo standard non offre alcun supporto per le scritture dell'est asiatico (cinese, giapponese, coreano), poiché i loro sistemi di scrittura ideografici richiedono molte migliaia di caratteri. Benché utilizzi caratteri basati sull'alfabeto latino, nemmeno il vietnamita rientra entro il limite di 96 caratteri (esclusi i segni diacritici) imposti dallo standard. I due sistemi di scrittura sillabici giapponesi (hiragana e katakana) rientrerebbero in tale limite, ma non sono comunque inclusi tra le codifiche ISO 8859.
Le parti dell'ISO 8859 Parte 1Latino-1 Europa occidentaleProbabilmente la parte più usata della ISO 8859, copre la maggior parte delle lingue europee occidentali: danese, faroese, finlandese (parzialei caratteri mancanti sono nella ISO 8859-15.), francese (parziale), gaelico scozzese, inglese, irlandese, islandese, italiano, norvegese, olandese (parzialemanca solo la lettera IJ/ij, che può essere rappresentata come IJ.), portoghese, romancio, spagnolo, svedese e tedesco. Lingue di altre parti del mondo sono anch'esse comprese, come: europee orientali (albanese), asiatiche sudorientali (indonesiano), così come lingue africane (afrikaans e swahili). I caratteri mancanti € e Ÿ maiuscola sono nella ISO 8859-15 versione riveduta. Il corrispondente repertorio di caratteri approvato dall'IANA ISO-8859-1 è la codifica predefinita per documenti HTML e per documenti trasmessi tramite messaggi MIME, come le risposte HTTP quando il tipo documento è "text" (come in "text/html").Parte 2Latino-2 Europa centraleSupporta le lingue centro ed est europee che usano l'alfabeto latino, comprese bosniaco, ceco, croato, polacco, serbo, slovacco, sloveno, ungherese. Il carattere mancante € si trova nella ISO 8859-16.Parte 3Latino-3 Europa meridionaleUsata per turco, maltese ed Esperanto. Largamente sostituita dalla ISO 8859-9 per il turco e dall'Unicode per l'Esperanto.Parte 4Latino-4 Europa settentrionaleUsata per estone, lettone, lituano, groenlandese e sami.Parte 5Latino/CirillicoCopre la maggior parte delle lingue slave che usano l'alfabeto cirillico, come: bielorusso, bulgaro, macedone, russo, serbo, ucraina (parzialemanca il carattere Ґ/ґ, reintrodotto nella lingua ucraina nel 1990.).Parte 6Latino/AraboCopre i caratteri più comuni della lingua araba. Non supporta altri linguaggi che usano l'alfabeto arabo. Per essere correttamente visualizzato necessita di essere elaborato per la bidirezionalità e l'analisi contestuale.Parte 7Latino/GrecoCopre il greco moderno (sistema monotonico di accentazione). Può essere usato anche per il greco antico scritto senza accenti (monotonico), ma mancano i diacritici per il sistema politonico, introdotto con l'Unicode.Parte 8Latino/EbraicoCopre il moderno alfabeto ebraico come è utilizzato in Israele. In pratica esistono due differenti codifiche: ordine logico (necessita di elaborazione per il testo bidirezionale) e visuale (da sinistra a destra).Parte 9Latino-5 TurcoIn gran parte simile alla ISO 8859-1, sostituisce i caratteri islandesi, raramente usati, con quelli turchi. È usato anche per il curdo.Parte 10Latino-6 NordicoUna revisione del Latino-4 (ISO 8859-4). Considerato più utile per molte lingue scandinave. Le lingue baltiche usano prevalentemente il Latino-4.Parte 11Latino/ThaiContiene la maggior parte dei caratteri necessari per la Lingua thailandese. Lo stesso del TIS 620.non esistente Parte 12Latino/DevanagariLa creazione di una parte della 8859 per il Devanagari fu ufficialmente abbandonata nel 1997. ISCII e Unicode/ISO/IEC 10646 coprono il Devanagari.Parte 13Latino-7 BalticoAggiunti alcuni caratteri per le lingue baltiche che non erano presenti in Latino-4 e Latino-6.Parte 14Latino-8 CelticoCopre le lingue celtiche come il gaelico e il bretone.Parte 15Latino-9Una revisione della 8859-1 che elimina alcuni simboli scarsamente utilizzati, sostituendoli con il simbolo dell'euro € e con le lettere Š, š, Ž, ž, Œ, œ, e Ÿ, che completano la copertura del francese, finlandese ed estone.Parte 16Latino-10 Europa sudorientaleDestinata all'albanese, croato, italiano, polacco, rumeno, sloveno ed ungherese, ma utilizzabile anche per il finlandese, francese, tedesco ed irlandese (nuova ortografia). È stata posta maggiore attenzione alle lettere che non ai simboli. Il simbolo generico di valuta (¤) è stato sostituito dall'Euro (€).
Ciascuna parte della ISO 8859 è progettata per essere utilizzata con lingue simili, in modo che i caratteri utilizzati, a volte comuni, siano inseriti nella stessa raccolta. Ci sono però alcuni caratteri e combinazioni di lingue che non possono essere direttamente supportate se non attraverso una transcodifica.
Particolare attenzione è stata posta affinché le operazioni di conversione tra codifiche diverse risultassero quanto più agevoli possibile; ad esempio i sette caratteri speciali del tedesco occupano la medesima posizione in tutte le varianti latine (1-4, 9-10, 13-16), e per molte posizioni i caratteri differiscono, tra una variante e l'altra, unicamente per i segni diacritici. In particolare le varianti 1-4 sono state progettate congiuntamente allo scopo di garantire che se due varianti comprendono un medesimo carattere, esso deve comparire in entrambe nella medesima posizione.
Tabella