Marco Cimarosti - Presentazione Unicode (2000) [Home]
 

La mia introduzione a Unicode (versione del 2000)

Scripta manent è un’introduzione allo standard di codifica dei caratteri Unicode rivolta a un pubblico di tecnici informatici. In particolare, l’introduzione si rivolge a programmatori e sistemisti interessati alla internazionalizzazione del software, e a grafici e webmaster interessati alla progettazione di pagine web multilingue.

Si tratta di una presentazione in PowerPoint™ della durata di circa tre ore, che preparai in seguito alla mia partecipazione alla 16ª Conferenza Unicode, tenutasi ad Amsterdam nel 2000. La presentazione nacque da una duplice richiesta: l’ICL, la ditta per cui lavoravo allora (e che finanziò la mia iscrizione alla conferenza Unicode) mi chiese di riferire ai miei colleghi su quanto avevo appreso su Unicode, e di come questo standard potesse essere impiegato nei nostri prodotti software; contemporaneamente, Giovanni Lussu (che conobbi proprio alla conferenza di Amsterdam), mi chiese di tenere una lecture su Unicode agli studenti del suo corso di comunicazione visiva del Politecnico di Milano.

Non avevo mai usato prima PowerPoint o altri software di presentazione e, come spesso avviene ai novizi, mi lasciai prendere la mano dalle potenzialità dello strumento tecnico. Col senno di poi, le slide sono troppo piene di elementi in movimento che vanno a sovrapporsi gli uni sugli altri, talvolta nascondendo informazioni importanti prima che l’ascoltatore abbia avuto il tempo di assimilarle, e il percorso volutamente non lineare non aiuta l’ascoltatore a orientarsi. Queste ingenuità sono state corrette nella successiva versione del 2002, che segue un percorso più semplice e fa un uso più sobrio dell’animazione.

Questa versione della presentazione è stata proiettata nelle seguenti occasioni:

Su richiesta, l’autore è disponibile a proiettare questa introduzione presso aziende o istituzioni, eventualmente adattandola a esigenze specifiche.


Download

Altre versioni


Immagini delle slide

Slide Speaker’s notes
Slide su Unicode

1. Scripta manent

(1 clic)

Pagina introduttiva.
Autore: Marco Cimarosti.
Data: dicembre 2000.
I paragrafi numerati descrivono i “clic” di mouse che l’oratore deve fare durante la presentazione per far apparire gli elementi animati presenti nelle slide.
  1. Appare una nota sulla proprietà del logo e nome “Unicode”.
Slide su Unicode

2. Si va a parlare di

(nessun clic)

Sommario generale delle 4 sezioni.
La statua rappresenta Sarasvati, la dea hindu della scrittura.
Slide su Unicode

3. A numero uguale

(nessun clic)

Sommario della sezione 1: una breve storia dei sistemi di codifica del testo su computer, da ISO-646 (ASCII) a ISO-10646 (Unicode).
Slide su Unicode

4. Testo ricco e testo povero

(5 clic)

Si discutono le differenze fra rich text (testo contenente informazioni di formato: font, colori, ecc.) e plain text, che specifica solo “cosa c’è scritto nel testo”. Si specifica che in questa presentazione si parla solo del secondo: le informazioni grafiche non riguardano i sistemi di codifica.
  1. Documento: un esempio di rich text, un volantino preparato al computer da un ipotetico gruppo politico [nota: È l’incipit de Il programma anarchico di E. Malatesta].
  2. Fumetto: il rich text altro non è che plain text (mostrato in nero) con l’aggiunta di informazioni di mark-up (mostrate in rosso) [nota: il mark-up dell’esempio è ispirato a HTML].
  3. Documento: lo stesso testo senza il mark-up: questo è plain text, che il computer ci mostrerà in un unico font.
  4. Fumetto: appaiono i codici numerici che, all’interno della memoria del computer, rappresentano ogni carattere del testo [nota: i numeri sono espressi in notazione esadecimale che, oltre alle normali cifre 0-9 utilizza le sei lettere A-F come cifre].
  5. Si apre una parentesi.
Slide su Unicode

5. Parentesi - I numeri esadecimali

(9 clic)

Questa parentesi è superflua per programmatori e persone esperte in informatica.
  1. Si introducono i numeri decimali (quelli che usiamo solitamente).
  2. Potenze di 10.
  3. Servono 10 simboli (0-9).
  4. Esempio: valore del numero 2345 è duemilatrecentoquarantacinque.
  5. Si introducono i numeri esadecimali (quelli che usano i programmatori).
  6. Potenze di 16.
  7. Servono 16 simboli (0-9 e lettere A-F).
  8. Esempio: valore del numero 2345 è novemilaventinove.
  9. Si chiude la parentesi.
Slide su Unicode

6. Nonno ASCII

(2 clic)

Si sipiegano le codifiche a 128 caratteri degli anni ’60.
Appare la tabella di ISO-646-US (detto “ASCII”) e una vecchia macchina da scrivere americana: ecco da dove vengono strani caratteri come ` ~ @ # ^ \ | ecc.
  1. Tabella: ISO-646-IT (detto “UNI” ): la variante italiana di ASCII.
  2. Si evidenziano le differenze fra le due codifiche: in quella italiana, diversi caratteri “strani” (“@”, ecc.) sono sostituiti dalle vocali accentate, ecc.
Slide su Unicode

7. “OEM”: gli ASCII estesi

(4 clic)

Si parla del proliferare di codifiche a 256 caratteri degli anni ’70-’80.
Appare un personal computer dell’epoca (un AT IBM) e la tabella della code page usata sui sistemi Windows in lingue occidentali: la cp1252.
  1. Tabella: la code page usata negli stessi anni (e sugli stessi computer!) dal sistema operativo DOS: cp850.
  2. Fumetto: appare un testo espresso in cp1251 (la riga di uno scontrino: si è comprato un profumo francese per quasi 5 sterline) che contiene due caratteri “estesi”.
  3. Fumetto: si mostra come appare il testo quando il computer “si confonde” e ce lo mostra interpretando i codici numerici secondo la cp850.
  4. Si evidenzia che la cp850, comunque, avrebbe I caratteri necessari, ma in tutt’altra posizione.
Slide su Unicode

8. Latin 1

(6 clic)

Si parla di ISO-8859: un primo standard (anni ’80-’90) di codifica internazionale che comprendeva sottosezioni per diversi alfabeti (latino, greco, cirillico, ebraico, arabo, thai, ecc.).
Appare un personal computer contemporaneo (un laptop Fujitsu) e la tabella di ISO-8859-1 (detto “Latin 1”).
  1. Tabella: la tabella di ISO-8859-5 (detto “ISO Cyrillic”).
  2. Fumetto: appare una parola in alfabeto cirillico, traslitterata in alfabeto latino. La freccia rappresenta un comando di trasformazione in tutte maiuscole che il computer esegue correttamente.
  3. Si mostra come il computer conosca la correlazione maiuscola-minuscola che esiste fra alcuni codici nella tabella cirillica: è questo che rende possibile la trasformazione in maiuscole appena vista.
  4. Fumetto: si mostra come (non) funziona la trasformazione in maiuscole quando il computer “si confonde” e esegue la trasformazione interpretando i codici numerici secondo la tabella Latin 1.
  5. Si evidenzia come le due lettere latine nel nostro testo hanno lo stesso codice anche nella tabella sbagliata.
  6. Si evidenzia come i codici delle due lettere cirilliche nel nostro testo, interpretate secondo la tabella sbagliata, non risultano essere lettere minuscole e, quindi, non vengono interessate dalla trasformazione.
Slide su Unicode

9. Il pianeta del doppio byte

(6 clic)

Si parla di come le 256 combinazioni di un byte siano insufficienti per rappresentare le migliaia di caratteri delle scritture dell’estremo oriente e di come questo rese necessaria l’invenzione dei DBCS (double-byte character sets).
Appare una pagina internet in giapponese.
  1. Tabella: il set di caratteri JIS (giapponese). Le prime 128 caselle sono uguali all’ASCII (o quasi: la \ e sostituita dal simbolo dello yen) e, come al solito, ogni byte rappresenta un carattere. Le 128 caselle (95 di esse, in effetti) seguenti non rappresentano caratteri, ma sono utizzati come lead bytes (in giapponese: ku) che rimandano a 95 sottotabelle.
  2. Appaiono tre esempi di sottotabelle: la prima contiene segni di punteggiatura, le altre due sono fra le molte che contengono le migliaia di kanji (= carattei cinesi) necessari in giapponese.
  3. Fumetto: il testo continene due caratteri: un kanji (che significa “pace”) seguito da un punto esclamativo. Usando la serializzazione EUC (= Extended Unix Code) del set di caratteri JIS il primo carattere richiede due byte: il primo identifica la sottotabella, il secondo il carattere all’interno di questa.
  4. Fumetto: anche in questo caso, se il computer “si confonde” vedremo il testo in modo bizzarro: solo il segno di punteggiatura, essendo un singolo byte, ci appare corretto.
  5. Fumetto: i set di caratteri DBCS sono passibili di più serializzazioni in byte. Eccone un’altra: shift-JIS, che utilizza solo byte minori di 128. Se i byte vadano interpretati come caratteri ASCII o, a coppie, come caratteri JIS viene specificato con l’uso di sequenze di escape .
  6. Fumetto: anche in questo caso sono possibili equivoci.
Slide su Unicode

10. Arriva Unicode!

(2 clic)

Si descrive lo schema originario di Unicode (primi anni ’90): ogni carattere ha 16 bit.
Appare la pagina web del Consorzio Unicode.
  1. Tabella: i primi 256 caratteri di Unicode, identici a Latin 1.
  2. Tabella: si mostra come l’intera tabella di prima (di 256) non sia altro che una casella della tabella generale. Quindi, il “vecchio” Unicode permetteva 256x256=65536 caratteri: più che sufficiente per le scritture usate da tutte le lingue contemporanee.
Slide su Unicode

11. Unicode fa carriera

(1 clic)

Alla fine degli anni ’90 Unicode diventa uno standard ufficiale: ISO-10646. L’ISO impone però l’aggiunta di circa un milione di codici-carattere in più. Attualmente (dicembre 2000) nessuno di questi nuovi codici è stato allocato, ma questo cambierà presto: sono in arrivo un nuovo set di caratteri cinesi molto rari e, soprattutto, verranno codificate molte scritture antiche (geroglifici, caratteri cuneiformi, ecc.) ad uso degli studiosi di linguistica e archeologia.
Appare il “vecchio schema” di Unicode.
  1. Tabella: il “vecchio schema” ora si chiama BMP (Basic Multilingual Plane) ed è solo il primi di 17 “piani”. I 16 piani nuovi si chiamano ufficialmente “piani estesi” ma qualcuno li chiama scherzosamente “piani astrali”.
Slide su Unicode

12. Pausa

(nessun clic)

Slide su Unicode

13. Pellegrinaggio in oriente

(nessun clic)

Sommario della sezione 2: un viaggio intorno al mondo alla scoperta dei sistemi di scrittura.
Slide su Unicode

14. Partenza dall’Europa

(9 clic)

In questa slide, come in quelle che seguono appariranno tre elementi standard: un tragitto rosso sulla cartina geografica; la tabella di Unicode con evidenziate in rosso le caselle relative ai blocchi (ogni blocco contiene fino a 256 caratteri) di cui si sta parlando; un’immagine della divinità locale della scrittura.
  1. Tragitto.
  2. Tabella Unicode.
  3. Appare Odino (o Wodan), dio germanico della scrittura [Nota: Odino è orbo di un occhio, che perse quando rubò le rune a un titano, per donarle agli uomini].
  4. Scrittura latina [Nota: ogni scrittura è rappresentata dalle parole latine “Scripta manent.” (tratte dal noto motto “Verba volant, scripta manent.” = “Le parole dette volano via, la scrittura rimane”). Il suono di questa frase viene traslitterato in ogni scrittura. I numeri fra parentesi rappresentano il minimo e il massimo codice allocato per questa scrittura in Unicode].
  5. Scrittura greca.
  6. Scrittura cirillica.
  7. Scrittura armena (Armenia, repubblica ex sovietica).
  8. Scrittura georgiana (Georgia, repubblica ex sovietica) [Nota: a differenza delle altre quattro, questa scrittura non usa le lettere maiuscole. O meglio: le usa solo in alcuni tipi di testi religiosi].
  9. Si apre una parentesi.
Slide su Unicode

15. Parentesi - Maiuscole e minuscole

(4 clic)

Le scritture europee (tranne la georgiana contemporanea) presentano due serie di lettere: maiuscole e minuscole. Queste vengono considerati caratteri separati ma in molti casi (ad esempio nelle funzioni di ricerca) il computer deve sapere che “a, b, c.” sono la stessa cosa che “A, B, C.”. Ecco come.
  1. Conversione m/M in ASCII: totalmente algoritmica (cioè non richiede tabelle di dati) ed estremamente semplice.
  2. Conversione m/M in Latin 1: quasi semplice come in ASCII, ma con un caso speciale.
  3. Conversione m/M in Unicode: estremamente complicata e con tantissimi casi speciali, talvolta non risolvibili se non si conosce in quale lingua è scritto il testo.
  4. Si apre un’altra parentesi.
Slide su Unicode

16. Parentesi - Accento cosmopolita

(4 clic)

Cos’è una lettera accentata dal punto di vista della codifica: un carattere o due caratteri (carattere lettera + carattere accento)?
  1. Accenti in ASCII: non esistono accenti in inglese americano.
  2. Accenti in Latin 1: parecchi caratteri rappresentano le combinazioni lettera+accento necessari nell’Europa occidentale.
  3. Accenti in Unicode: esistono centinaia di combinazioni lettera+accento, in uso nelle lingue più disparate. Ma esistono anche dei caratteri diacritici (detti combining characters) che si combinano con i caratteri lettera per formare combinazioni arbitrarie.
  4. Si chiudono le due parentesi.
Slide su Unicode

17. Nella culla dell’alfabeto

(7 clic)

Le scritture del Medio Oriente, usate prevalentemente per lingue semitiche. Caratteristiche comuni: si scrivono da destra a sinistra; le vocali non si scrivono (o si scrivono tramite “accenti” diacritici).
  1. Tragitto e tabella Unicode.
  2. Appare Thot (o Djehuti, o Hermes Trismegistos), dio egiziano della scrittura [Nota: il dio ha corpo di uomo e testa di ibis; sta scrivendo su un papiro arrotolato usando una penna di giunco. Per la precisione, sta verbalizzando il “processo” all’anima di un faraone].
  3. Scrittura ebraica (lingue ebraica e jiddisch).
  4. Scrittura araba (lingue araba, persiana, urdu, pashto, ecc.).
  5. Scrittura siriaca (o aramaica; usata solo nei testi religiosi degli arabi cristiani).
  6. Scrittura maldiviana.
  7. Si apre una parentesi. [Nota: in queste scritture l’aperta parentesi è uguale alla nostra chiusa parentesi!]
Slide su Unicode

18. Parentesi - Bidirezionalità

(7 clic)

Unicode prevede un complicato algoritmo bidirezionale per quando le scritture mediorientali vengono mischiate ad altre.
  1. Linea LTR (= left-to-right): le lettere occidentali (qui in rosso) hanno direzionalità LTR; il segno di punteggiatura (in bianco) è neutro ma assume la direzionalità dei caratteri vicini; la direzionalità della linea è quella del primo carattere a direzionalità non neutra.
  2. Linea RTL (= right-to-left): le lettere mediorientali (qui in giallo) hanno direzionalità RTL.
  3. Linea LTR contenente testo RTL. Il left-to-right mark (U+200E) è un carattere invisibile il cui unico scopo è quello di influenzare la direzionalità dei caratteri neutri adiacenti.
  4. Linea RTL contenente testo LTR. Il right-to-left mark (U+200F) è analogo a U+200E, ma con direzionalità opposta.
  5. L’algoritmo bidirezionale pone grossi problemi al processo di editing del testo. Qui vediamo un blocco di testo (in rosso) selezionato col mouse: I due caratteri sono logicamente contigui ma, visivamente, sono distanti. Questa soluzione (“selezione logica”) è più semplice per il programmatore, ma sconcertante per l’utente che, in questo caso, vedrà due blocchi di testo selezionato.
  6. La scelta opposta (“selezione visiva”) è più amichevole per l’utente, ma complica la vita del programmatore perche’ i caratteri selezionati, nella memoria, non sono più contigui.
  7. Si apre un’altra parentesi.
Slide su Unicode

19. Parentesi - Il modello carattere/glifo - 1

(8 clic)

La vecchia idea che ogni carattere ha una e una sola forma non vale in Unicode. Moltre scritture, ad es. l’arabo, hanno lettere di forma variabile. Questo si risolve in una forte complicazione nella struttura dei font e della parte di software che li usa.
  1. Forma isolata di una lettera araba.
  2. Forma finale della stessa lettera araba.
  3. Forma iniziale della stessa lettera araba.
  4. Forma mediana della stessa lettera araba.
  5. Esempio di legatura fra due lettere arabe adiacenti [Nota: la legatura è opzionale, e solo certi stili calligrafici/tipografici la richiedono].
  6. Altro esempio di legatura [Nota: questa particolare legatura, chiamata laam-alif, è assolutamente obbligatoria].
  7. Esempio di violazione del comportamento di default per mezzo dei controlli ZWJ (= zero-width joiner) e ZWNJ (= zero-width non joiner).
  8. Si chiudono le due parentesi.
Slide su Unicode

20. Passaggio in India

(5 clic)

Le scritture dell’India sono tutte derivate dall’antica scrittura brahmi
  1. Tragitto e tabella Unicode.
  2. Appare Ganesh (o Ganapati), dio hindu della scrittura e della scienza [Nota: il dio ha corpo di uomo con quattro braccia e testa di elefante. Appare spesso danzante o assiso su un trono, intento ad offrire un lauto pranzo ad un topo. La svastica tatuata sulla mano del dio è un antichissimo simbolo religioso, solo successivamente travisato ed abusato dall’ideologia nazista].
  3. Scritture dell’India settentrionale (usate per le lingue indo-arie): bengalese (o bengali), devanagari (o nagri), gujarathi, gurmukhi (o punjabi).
  4. Scritture dell’India meridionale (usate per le lingue dravidiche): kannada (o canarese), malayalam, tamil (o tamizh), telugu.
  5. Si apre una parentesi.
Slide su Unicode

21. Parentesi - Il modello carattere/glifo - 2

(7 clic)

Le vocali delle scritture indiane sono particolarmente problematiche: in memoria sono sei semplici caratteri che seguono la relativa consonante ma, in visualizzazione, devono essere convertite in uno o più glifi posizionati su uno o più lati della consonante.
  1. Una consonante da sola: si legge con una implicita vocale, di solito la a, [Nota: questo come gli altri esempi utilizzano la lettera ka dell’alfabeto devanagari].
  2. Un esempio di vocale il cui glifo è alla destra della consonante.
  3. Un esempio di vocale il cui glifo è sopra la consonante.
  4. Un esempio di vocale il cui glifo è sotto la consonante.
  5. Un esempio di vocale il cui glifo è alla sinistra della consonante.
  6. Un esempio di vocale che viene visualizzata con due glifi, disposti sui due lati della consonante [Nota: in questo caso si tratta della ka dell’alfabeto bengalese].
  7. Si chiude la parentesi.
Slide su Unicode

22. Dall’Indocina al Tibet

(9 clic)

Altre scritture derivate dalla brahmi, strettamente imparentate a quelle indiane.
  1. Tragitto e tabella Unicode.
  2. Appare Marpa (detto “il traduttore”), il monaco tibetano che diffuse il buddismo in Tibet e in Cina traducendo i testi provenienti dall’India.
  3. Scrittura singalese (Sri Lanka).
  4. Scritttura thai [Nota: non c’è spaziatura fra le parole].
  5. Scrittura laotiana [Nota: non c’è spaziatura fra le parole].
  6. Scrittura tibetana [Nota: c’è un segno, lo tsheg, che separa le sillabe].
  7. Scrittura birmana.
  8. Scrittura khmer (Cambogia).
  9. Si apre una parentesi.
Slide su Unicode

23. Parentesi - Il modello carattere/glifo - 3

(8 clic)

Un’ulteriore complicazione delle scritture brahmi è rappresentata dalle consonanti non seguite da una vocale: quando due o più consonanti si susseguono, formano “grappoli” (consonant cluster) tipograficamente molto complessi.
  1. Una consonante devanagari da sola: si legge con la vocale a implicita.
  2. Per eliminare questa vocale si aggiunge un segno diacritico detto virama (o halant) che, in devanagari, è una specie di virgola sotto la consonante.
  3. Ma se segue un’altra consonante si forma un grappolo. Il devanagari e le altre scritture del nord rappresentano questi grappoli prevalentemente con un glifo speciale (dimezzato) della prima consonante. Notare che, in Unicode, questo si codifica inserendo una virama logica che non viene mostrata sullo schermo.
  4. Una consonante telugu da sola: si legge con la vocale a implicita.
  5. Per eliminare questa vocale si aggiunge il virama (o halant) che, in telugu, è una specie di “E” posta sopar la consonante. Notare che la forma della consonante cambia quando ha il virama (perde il cappello).
  6. Ma, se segue un’altra consonante, anche qui si forma un grappolo. Il telugu e le altre scritture del sud rappresentano questi grappoli prevalentemente sottoscrivendo un glifo alternativo per la seconda consonante. Notare che, in Unicode, anche questo si codifica inserendo una virama logica.
  7. Sia le scritture del nord che quelle del sud, infine, richiedono talvolta glifi speciali, detti legature, per rappresentare l’intero grappolo.
  8. Si chiude la parentesi.
Slide su Unicode

24. Estremo Oriente espress

(9 clic)

Si analizzano le scritture dette in Unicode CJK (= Chinese, Japanese, Korean). Tradizionalmente in quest’area si scriveve in colonne verticali, allineate da destra a sinistra. Oggi è comune anche l’orientamento orizzontale di derivazione occidentale.
  1. Tragitto.
  2. Tabella Unicode (quasi piena!).
  3. Appare una tartaruga [Nota: secondo il mito, una enorme tartaruga emerse dalle acque e disse a Cangjie, consigliere dell’imperatore, di copiare e diffondere fra gli uomini gli ideogrammi incisi sul suo guscio].
  4. Caratteri cinesi (cinese = hanzi; giapponese = kanji; coreano = hanja). Ogni carattere rappresenta, grosso modo, una parola (un morfema, più precisamente) [Nota: nelle lingue europee gli hanzi si chiamano comunemente ideogrammi ma questo termine è molto improprio].
  5. Alfabeto sillabico giapponese katakana [Nota: si usa prevalentemente per trascrivere parole straniere].
  6. Alfabeto sillabico giapponese hiragana [Nota: si usa prevalentemente per scrivere le terminazioni grammaticali delle parole giapponesi; il corpo della parola è invece solitamente scritto con i caratteri cinei].
  7. Alfabeto coreano hangul [Note - Le lettere che compongono ogni sillaba sono raggruppate in un gruppo. Fu inventato a tavolino, alcuni secoli fa, da una commissione governativa. I caratteri cinesi si usano solo per scrivere parole di origine cinese].
  8. Alfabeto cinese bo-po-mo-fo [Note - Inventato all’inizio di questo secolo. Si usa solo, in dizionari e simili, per indicare la pronuncia dei caratteri cinesi. È ormai usato solo a Taiwan].
  9. Si apre una parentesi (ovviamente alla maniera verticale).
Slide su Unicode

25. Parentesi - Dizionari “ideografici”

(6 clic)

Il corpo dei dizionari CJK, oggigiorno, è ordinato alfabeticamente per pronuncia. Però è necessario avere uno o più indici per reperire gli ideogrammi di cui non si conosce la pronuncia.
  1. Colonna I: 9 esempi di ideogrammi. I primi 5 sono ideogrammi originari (quelli portati dalla trataruga:-). I successivi due sono composti logici antichi (donna col bambino = bontà; trasmesso di bocca in bocca per dieci generazioni = antico). Gli ultimi due sono composti pittofonetici il componente di sinistra (donna) dà il senso generale, il componente sulla destra dà la pronuncia (mamma e cavallo si pronunciano ma; zia e antico si pronunciano gu).
  2. Colonna II: esempio di ordinamento alfabetico cinese (scrittura pinyin, basata sull’alfabeto latino).
  3. Colonna III: esempio di ordinamento alfabetico giapponese (scrittura hiragana).
  4. Colonna IV: ordinamento non fonetico per numero di tratti. I caratteri sono ordinati secondo il loro numero di tratti tracciati dalla penna; quando questo è uguale fa testo il primo tratto, ecc.
  5. Colonna V: ordinamento non fonetico per radicali. 214 ideogrammi usati come componente logica vengono usati come chiavi o radicali (es. la “donna” di “mamma” è il radicale n. 38). I caratteri che hanno lo stesso radicale si ordinano per numero di tratti della parte rimanente.
  6. Si apre un’altra parentesi.
Slide su Unicode

26. Parentesi - Metodi di input

(5 clic)

Come si battono gli ideogrammi sulla tastiera dei computer? Battendo più tasti per un singolo carattere. Questa componente del sistema operativo, che sta fra il driver della tastiera e il software applicativo, si chiama IME (= input method editor).
  1. Esempi di IME fonetico semplice, in pinyin (cinese) e hiragana (giapponese).
  2. Esempi di IME fonetico complesso (una sequenza di tasti emette più caratteri), in pinyin e hiragana.
  3. Esempi di battitura non fonetica. I tasti vengono associati a rappresentazioni mnemoniche di pezzi di caratteri.
  4. Esempio di lianxi: sulla base di dati statistici, alcuni IME complessi cercano di indovinare e suggerire il prossimo carattere da battere.
  5. Si chiudono le due parentesi.
Slide su Unicode

27. Volata finale

(9 clic)

Si vedono il resto delle scritture. Tranne l’etiopica-eritrea (usata da decine di milioni di persone), si tratta di scritture minoritarie. Le ultime due sono addirittura estinte.
  1. Tragitto e tabella Unicode.
  2. Appare la torre di Babele.
  3. Scrittura mongola (Mongolia, Cina) [Nota: è usata solo in ambienti religiosi buddisti; nella vita civile si usa il cirillico].
  4. Scrittura sillabica yi (Cina meridionale).
  5. Scrittura sillabica cree/eschimese (Canada).
  6. Scrittura sillabica cherokee (USA).
  7. Scrittura sillabica etiopica (o ge’ez - Etiopia ed Eritrea).
  8. Scrittura ogham (antico irlandese).
  9. Scrittura runica (lingue germaniche antiche).
Slide su Unicode

28. Un po’ dappertutto

(8 clic)

Caratteri condivisi da scritture diverse.
La tabella Unicode compare automaticamente.
  1. Ricompaiono tutte le mitche mascottes del viaggio.
  2. Punteggiatura.
  3. Simboli.
  4. Altri simboli.
  5. Codici surrogati: presi due a due codificano il milione di nuovi caratteri dell’ISO-10646 (l’esempio mostra il geroglifico egiziano: una delle scritture che, probabilmente, verrà allocata nei “piani estesi”).
  6. Area ad uso privata: ognuno può farci ciò che vuole (l’esempio mostra uno degli alfabeti del mondo dei romanzi di Tolkien).
  7. Si apre una parentesi.
Slide su Unicode

29. Parentesi - Gli UTF

(5 clic)

Unicode è un insieme di numeri idenificativi (detti scalari) che vanno da U+0000 a U-0010FFFF esadecimale. Questi codici possono essere serializzati in byte in diversi modi, detti UTF (= Unicode Transformation Formats).
  1. UTF-32: l’unità di codifica è di 32 bit (= 4 byte); ogni scalare sta direttamente in una unità [Nota: la signature 00.00.FE.FF (o FF.FE.00.00) identifica la endianness, cioè in quale ordine i 4 byte si presentano fisicamente. Si basa sul fatto che il codice “invertito” U-FFFE0000 è illecito].
  2. UTF-16: l’unità di codifica è di 16 bit (= 2 byte); ogni scalare fino a U+FFFF sta direttamente in una unità; i caratteri dei piani estesi si rappresentano con coppie di codici surrogati [Nota: la signature FE.FF (o FF.FE) identifica la endianness, cioè in quale ordine i 2 byte si presentano fisicamente. Si basa sul fatto che il codice “invertito” U+FFFE è illecito].
  3. UTF-8: l’unità di codifica è di 8 bit (= 1 byte); ogni scalare fino a U+007F (“caratteri ASCII”) sta direttamente in una unità; gli altri si rappresentano con sequenze di byte superiori a 128 [Nota: la signature EF.BB.BF serve solo a identificare il tipo di UTF].
  4. UTF-7 (obsoleto): derivato dal base-64, riesce a rappresetare gli scalari da U+0000 a U+FFFF usando solo byte inferiori a 128.
  5. Si chiude la parentesi.
Slide su Unicode

30. Pausa

(nessun clic)
Slide su Unicode

31. La tipografia di babele

(nessun clic)

Sommario della sezione 3: note sui font e sulle tecnologie di visualizzazione.
Slide su Unicode

32. True Type all’acqua di rose

(3 clic)

“Plain vanilla” (qui tradotto “all’acqua di rose”) in inglese americano significa “rozzo”, “terra-terra”.
  1. Tabella: le principali sezioni (tabelle) di un font True Type. La tabella cmap mappa i codici del set di caratteri (esempio, gli scalari di Unicode) in codici-glifo interni al font. Il problema è che la corrispondenza è uno a uno.
  2. Esempio di file contenente la parola “filza” in italiano e traslitterata in arabo e in hindi. [Nota: le lettere rosse rappresentano il contenuto (“logico”) della memoria].
  3. Si mostra il processo di visualizzazione. La mappatura uno a uno è a malapena adeguata alla nostra scrittura: l’arabo e lo hindi sono completamente sbagliati (rispettivamente “azlif” e “falzia”). [Note - Le lettere blu rappresentano ciò che si vede sullo schermo]
Slide su Unicode

33. Open Type

(4 clic)

La nuova tecnologia Microsoft.
  1. Tabella: un font Open Type estende il modello True Type con nuove tabelle. A noi interessa la GSUB, che mappa caratteri multipli con glifi multipli, in modo sensibile al contesto (cioè alla posizione dei caratteri nel testo).
  2. Esempio di file contenente la parola “filza” in italiano e traslitterata in arabo e in hindi.
  3. Un primo processo, indipendente dal font, esegue gli spostamenti di glifi.
  4. Un secondo processo esegue, consultando la GSUB del font in questione, le sostituzioni di glifi. Il risultato è ora corretto.
Slide su Unicode

34. AAT/ATSUI

(4 clic)

La nuova tecnologia Apple (AAT = Apple Advanced Typography; ATSUI = Apple Type Services for Unicode Imaging).
  1. Tabella: anche un font ATSUI estende il modello True Type con nuove tabelle. A noi interessa la mort, (che brutto nome!) che, come la GSUB dell’Open Type mappa caratteri multipli con glifi multipli in modo sensibile al contesto. La mort di ATSUI, però, è anche in grado di operare spostamenti di glifi.
  2. Esempio di file contenente la parola “filza” in italiano e traslitterata in arabo e in hindi.
  3. Un primo processo, indipendente dal font, esegue i soli spostamenti di glifi richiesti dalla bidirezionalità.
  4. Un secondo processo esegue, consultando la mort del font in questione, le sostituzioni o spostamenti di glifi. Il risultato è corretto.
Slide su Unicode

35. Graphite

(4 clic)

Il SIL (= Summer Institute of Linguistics) è un ente non a fini di lucro che si occupa di etnologia e dello studio delle lingue minoritarie. È anche attivissimo nel tentativo di alfabetizzazione delle lingue ancora prive di scrittura, al fine di salvarle dall’estinzione.
  1. Box: un normale font True Type.
  2. Box: un programma scritto in GDL (= Graphite Description Language), un linguaggio di programmazione speciale inventato dal SIL.
  3. Box: dalla fusione dei primi due (operata da un apposito compilatore) viene generano un font esteso, concettualmente molto simile allo schema AAT/ATSUI, ma molto più flessibile.
  4. Fumetto: un esempio di sorgente in GDL che opera sostituzioni e spostamenti di glifi.
Slide su Unicode

36. Che fare

(nessun clic)

Sommario della sezione 4: note sull’impiego di Unicode nello sviluppo di software e siti web.
Slide su Unicode

37. l WWW

(3 clic)

Note su HTML e XML.
  1. I codici delle entities fanno sempre riferimento a Unicode, qualunque sia l’encoding del documento.
  2. HTML: come impostare l’encoding del documento a Unicode (UTF-8 è la scelta normale, ma si possono utilizzare anche gli altri UTF).
  3. XML: come impostare l’encoding del documento a Unicode.
Slide su Unicode

38. I database

(2 clic)

Dichiarare e usare campi Unicode in diversi “dialetti” di SQL.
  1. SQL Server e Oracle.
  2. SQL in standard ANSI.
Slide su Unicode

39. La programmazione

(3 clic)

Dichiarare e usare stringhe Unicode in diversi linguaggi.
  1. C/C++.
  2. VB.
  3. Java.
Slide su Unicode

40. E non finisce qui...

(10 clic)

3 libri e 8 siti web interessanti.