La codifica digitale del testo
Codifica digitale La codifica Il computer elabora esclusivamente numeri binari. Le informazioni per essere trattate ed elaborate dal computer devono essere prima trasformate in numeri binari (sequenze di 0 e 1). Il processo di trasformazione di una qualunque informazione in numeri si chiama codifica. Se si usano numeri binari la codifica si chiama codifica binaria.
Codifica digitale La codifica I simboli 0 e 1 si chiamano anche bit (unità di informazione). Il computer associa i valori binari di 1 e 0 al passaggio di corrente, alla polarizzazione di una sostanza magnetica, ecc. 8 bit formano un byte. Con n bit si possono rappresentare 2 n numeri binari distinti, quindi con n bit possiamo rappresentare 2 n informazioni distinte.
Testo Il linguaggio e il testo Il testo scritto è una trasposizione del linguaggio parlato. Per convenzione si assegnano dei simboli ai fonemi, tali simboli sono i caratteri dell alfabeto. Ogni parola viene rappresentata con una sequenza di caratteri. Ogni lingua ha il suo alfabeto che può essere radicalmente diverso da quello di altre lingue.
Testo Il testo Il testo scritto è formato non solo da caratteri dell alfabeto (necessari per formare le parole) ma anche da altri simboli necessari per rendere comprensibile, e quindi fruibile, il testo. In particolare in un testo possiamo distinguere: I limitatori di parola (spazi bianchi). I limitatori di frase (segni di interpunzione). I limitatori di pagina (margini). I simboli speciali (virgolette, simboli matematici ecc.). La disposizione e l aspetto del testo (formattazione).
Testo La codifica del testo Quindi per passare da un testo (in linguaggio naturale) a un testo elettronico (in binario) è necessario un processo di codifica che deve essere composto da due parti: La codifica dei caratteri e dei simboli grafici. La codifica delle operazioni necessarie per esplicitare l interpretazione del testo (markup).
Codifica dei testi Linguaggio parlato Codifica dei simboli grafici Formattazione (markup) Testo scritto
Testo I vantaggi del testo elettronico I vantaggi più evidenti del testo elettronico, rispetto a un testo tradizionale, sono: le operazioni di manipolazione (modifica, cancellazione ecc.) di un testo elettronico sono molto semplici e veloci. le ricerche effettuate sono più veloci e precise. la conservazione delle informazioni è più sicura, grazie alla possibilità di effettuare delle copie (a costo praticamente nullo) dei file che contengono il testo. Nel caso di un testo elettronico la condivisione e lo scambio di informazioni viene agevolato rispetto ad un testo tradizionale (cartaceo).
Testo Acquisizione di un testo Per trattare elettronicamente il testo è necessario acquisirlo, ovvero fornirlo come input al computer. Per acquisire il testo si può operare in diversi modi: Digitare il testo tramite la tastiera. Usare uno scanner e un software di OCR (Optical Character Recognition), Copiare il testo precedentemente acquisito o creato da altri tramite la copia di file memorizzati su qualche tipo di supporto (floppy disk, CD-ROM ecc.).
La codifica dei caratteri
Codifica dei caratteri La codifica dei caratteri I caratteri sono i componenti fondamentali di un qualunque scritto umano. I caratteri hanno una natura (ossia il fonema che rappresentano) e un glifo (ossia il modo in cui sono rappresentati). A a A a A a I caratteri rappresentati sopra hanno la stessa natura ma glifi diversi.
Codifica dei caratteri La codifica dei caratteri Per codificare i simboli grafici bisogna associare ad ogni carattere un numero naturale. In questo modo costruiamo una corrispondenza biunivoca tra l insieme dei caratteri e un insieme di numeri. Questa corrispondenza può essere rappresentata per mezzo di una tabella detta set di caratteri. Ad ogni carattere si associa un codice numerico detto code position.
Codifica dei caratteri La codifica dei caratteri Per esempio, se ordiniamo le lettere dell alfabeto italiano da 1 a 21 e associamo ad ogni carattere il numero d ordine corrispondente, potremo codificare la parola PENNA con la sequenza di numeri 14 5 12 12 1. A B E N 1 2 5 12 P E N N A 14 5 12 12 1 p 14
Codifica ASCII La codifica ASCII La prima standardizzazione della codifica dei caratteri venne fatta dall American Standard Code for Information Interchange, o ASCII, nel 1968, tuttavia essa era già esistente nella sua forma definitiva dalla fine degli anni cinquanta. La codifica ASCII usa solo 7 bit degli 8 disponibili in un byte, quindi permette solo 2 7 = 128 combinazioni diverse, e lascia un bit libero (ai tempi la scarsa qualità dell hardware questo bit serviva per verificare la corretta memorizzazione e trasmissione di ogni singolo byte).
Codifica ASCII La codifica ASCII Delle 128 combinazioni possibili le prime 32 sono riservate a codici di controllo, vale a dire caratteri particolari di uso nelle telescriventi e nei terminali dell epoca a disposizione, mentre dalla 33 a posizione in poi trovano una codifica le lettere maiuscole e minuscole dell alfabeto latino, i numeri, i principali caratteri di punteggiatura, le parentesi e vari simboli (&, >, <, /, +, *, ecc). Mancano in ASCII tutte le varianti dell alfabeto latino usate nelle altre lingue europee (ad esempio le vocali accentate o con la dieresi, i simboli delle monete, ecc).
Codifica ASCII La codifica ASCII La codifica ASCII standard viene detta anche ISO-646. Nella codifica ASCII i principali caratteri dell alfabeto sono trasformati in un numero decimale e quindi in un numero binario o esadecimale. La tabella di codifica ASCII è uno standard accettato da tutti i paesi.
Codifica ASCII Tabella dei codici ASCII
Codifica ASCII estesa La codifica ASCII estesa In seguito al miglioramento della qualità dell hardware era più necessario riservare un bit per il controllo, quindi si cominciò ad utilizzare il bit libero per codificare altri caratteri (per esempio i caratteri tipici di ogni lingua). Con i 7 bit della codifica ASCII più il nuovo bit si potevano codificare 2 8 = 256 caratteri. Ogni produttore pensò di codificare i caratteri che riteneva più utili dando vita ad una codifica ASCII estesa. Le due estensioni più comuni erano quella dell ANSI (American National Standard Institute) e del sistema operativo MS- DOS (Microsoft Disk Operating System).
Codifica ASCII estesa La codifica ASCII estesa Il risultato di queste estensioni non standard fu che i testi diventavano incomprensibili trasportandoli da una macchina ad un altra. Nel 1990 si pensò di standardizzare le estensioni ASCII a 8 bit, nacque così lo standard ISO Latin-n o ISO-8859-n dove n indica la tabella estesa utilizzata (necessaria per rappresentare i caratteri delle varie lingue). La codifica ASCII estesa nelle prime 128 posizioni è identica alla codifica ASCII standard a 7 bit.
Codifica ASCII estesa La codifica ASCII estesa Per analogia con la codifica ASCII standard le prime 32 posizioni dopo la 128 a sono riservate a caratteri di controllo, mentre nelle successive 96 posizioni sono codificati i simboli e i caratteri tipici di ogni lingua (à, ã, è, è, ë, æ, ì, ï, î, ò, ö, ø, õ, ù, ü, À, Á, Â, Ã, È, Ë, É, Ê, Æ, Ì, Í, Î, Ï, Ø, Ö, Ó, Ò, Õ, č, Č, ç, ecc.) Il risultato della nuova codifica fu una tabella per ogni lingua, inoltre questi set di caratteri erano tutti reciprocamente incompatibili (per esempio il codice 232 in ISO-8859-1 (Latin-1) = è mentre in ISO-8859-6 (Cyrillic) = ш ).
Codifica ASCII estesa Tabelle dei codici ASCII estesi ISO-8859-1 Latin 1 (West Europe) ISO-8859-2 Latin 2 (East Europe) ISO-8859-3 Latin 3 (South Europe) ISO-8859-4 Latin 4 (North Europe) ISO-8859-5 Cyrillic ISO-8859-6 Arabic ISO-8859-7 Greek ISO-8859-8 Hebrew ISO-8859-9 Latin 5 (Turkish) ISO-8859-10 Nordic Nel 1999 è stato introdotto l ISO Latin-9 che rappresenta una piccola modifica dell ISO Latin-1, che contiene il simbolo dell euro ( ) e pochi altri simboli.
Codifica Unicode La codifica unicode (www.unicode.org) La tabella ASCII estesa con i suoi 256 caratteri era più che sufficiente per codificare gli alfabeti di molti paesi occidentali, tuttavia non era sufficiente per rappresentare tutti i caratteri di tutte le lingue del mondo. Così nel 1991 si pensò di introdurre una nuova codifica che potesse comprendere tutti gli alfabeti di tutte le lingue (presenti e passate) del mondo. Il nuovo standard è noto come Unicode o ISO 10646 e prevede l utilizzo di più byte per ogni carattere. Ci sono tre tipi di codifica Unicode in relazione al numero di byte utilizzati per la codifica.
Codifica Unicode La codifica unicode (www.unicode.org) Lo standard Unicode è sufficiente per rappresentare i caratteri di tutti i sistemi grafici. Unicode permette la realizzazione di documenti multilingua. Lo standard Unicode si basa sui principi di composizione dinamica dei caratteri ç= c +
Codifica UCS-2 La codifica UCS-2 Lo standard UCS-2 (Unified o Universal Character Set a 2 byte) utilizza due byte (16 bit) per ogni carattere, quindi è in grado di rappresentare 2 16 = 65.536 caratteri diversi, in questo modo si riescono a codificare la maggior parte degli alfabeti moderni. Lo standard UCS-2 non è sufficiente per codificare il cinese e altre lingue orientali.
Codifica UCS-2 Esempio di codifica Unicode UCS-2
Codifica UCS-4 La codifica UCS-4 Lo standard UCS-4 (Unified o Universal Character Set a 4 byte) utilizza quattro byte (32 bit) per ogni carattere, quindi è in grado di rappresentare 2 32 = 4.294.967.296 caratteri diversi, in questo modo si riescono a codificare tutti gli alfabeti di tutte le lingue compreso il cinese, i geroglifici e l alfabeto cuneiforme. Poiché le esigenze degli alfabeti umani sono molto più basse degli oltre 4 miliardi di caratteri permessi, di fatto lo standard UCS-4 ha il 90% dei codici non assegnati.
Codifica Unicode La codifica Unicode Lo standard UCS-4 è compatibile con UCS-2 che a sua volta è compatibile con ASCII standard. Codifica del carattere A ASCII 65 UCS-2 0 65 UCS-4 0 0 0 65
Codifica UTF-8 La codifica UTF-8 Il problema principale dello standard UCS-4 è lo spazio occupato dai documenti. Infatti: se consideriamo un documento scritto solo con caratteri ASCII esso occuperà un certo spazio di memoria. Se il documento lo scriviamo con caratteri UCS-2 occuperà uno spazio doppio e se lo scriviamo con caratteri UCS-4 esso occuperà uno spazio quadruplo. Lo spazio in eccesso inoltre è costituito da bit tutti impostati a zero, quindi si tratta di spazio sprecato inutilmente.
Codifica UTF-8 La codifica UTF-8 Per ovviare al problema dello spreco di spazio e mantenere la compatibilità della trasmissione dei documenti, è stato introdotto il sistema UTF-8 (Unified o Universal Transformation Format a 8 bit). Lo standard UTF-8 codifica i caratteri usando una lunghezza variabile tra 1 e 4 byte (da 8 a 32 bit). UTF-8 (ed altre codifiche a lunghezza variabile) fanno comunque riferimento a UCS-4 che è la mappatura più completa e organizzata di tutti i caratteri di Unicode.
Codifica UTF-8 La codifica UTF-8 Se un carattere è rappresentabile in ASCII, allora la sua codifica UTF-8 rimane la stessa (un singolo byte). Se il carattere è rappresentabile in UCS-2 o UCS-4, allora la sua codifica UTF-8 sarà costituita da due o quattro byte, il primo dei quali specificherà la lunghezza della sequenza. In generale, se la codifica occupa n byte (2 n 6), allora il primo byte avrà i primi n bit impostati a 1, poi uno 0 ed infine i bit della rappresentazione del carattere.