3.9

Sezione 3: Autori

Q 3.9: XML può usare caratteri non Latini?

Si, questo è il default

 

Si, le Specifiche XML dicono esplicitamente che XML usa ISO 10646, il repertorio di caratteri standard internazionale che copre la maggior parte dei linguaggi più conosciuti. Unicode è un repertorio identico e i due standard si tracciano assieme. Le specifiche dicono (2.2): ‘Tutti gli elaboratori di XML devono accettare le codifiche UTF-8 e UTF-16 di ISO 10646…’. C’è un FAQ su Unicode su http://www.unicode.org/faq/ e un esempio di una gamma di alfabeti e simboli su http://www.cogsci.ed.ac.uk/~richard/unicode-sample-3-2.html.

Seppure il software XML permette di inserire qualsiasi carattere Unicode all’interno di un documento, i tuoi lettori possono vedere solamente i caratteri se il loro computer ha un font adatto! No tutti i caratteri e i font hanno l’intero repertorio Unicode (quelli che lo hanno sono enormi).

UTF-8 è una codifica di Unicode in caratteri 8-bit: i primi 128 sono gli stessi di ASCII, e i caratteri di ordine più alto sono usati per codificare qualsiasi altra cosa da Unicode in sequenze fra 2 e 6 byte. UTF-8 nella sua forma a singolo ottetto è dunque la stessa cosa di ISO 646 IRV (ASCII), dunque puoi continuare ad usare ASCII per l’inglese o altre lingue che usano l’alfabeto Latino senza segni diacritici (accenti). Nota che UTF-8 è incompatibile con ISO 8859-1 (ISO Latin-1) dopo il punto di codice 127 decimale (la fine dell’ASCII).

UTF-16 è una codifica di Unicode in caratteri a 16 bit, che ti permette di rappresentare 16 piani. UTF-16 è incompatibile con ASCII dato che usa due byte a 8-bit per carattere (quattro byte sopra U+FFFF).

Peter Flynn scrive:

Le specifiche di codifica possono fare riferimento a qualsiasi gruppo di caratteri che il tuo software supporta, ma le Specifiche XML richiedono solo che le applicazioni supportino UTF-8 e UTF-16. Alcune delle codifiche comuni supportate dal software includono:

US-ASCII

Solo caratteri TAB, LF, CR, spazi, e caratteri stampabili da 33 a 126 (decimale) (tutti gli altri caratteri di controllo sono vietati da XML).

ISO-8859-1

(Western European Latin-1) Come ASCII più codici da 128 a 255 (decimali). Copre la maggior parte (ma non tutte) le lettere accentate dell’Europa Occidentale.

ISO-8859-2 a 15

Questi altri piani di ISO-8859 coprono il resto e i diversi insieme di alfabeti e altri simboli basati sul latino.

‘Codepages’ e altri gruppi obsolescenti

Alcuni software potrebbero anche supportare vari ‘codepages’ obsoleti, come IBM-850, Microsoft Windows-1252, Apple Macintosh Roman-8, DEC Multination e altre codifiche di carattere non standard, ma questo sono generalmente non trasportabili e dovrebbero essere evitate quando possibile.

Una pratica comune dell’Europa occidentale è quella di usare ISO-8859-1 cosicché la maggior parte delle lettere accentate comuni possano essere usate come byte singoli, e usare riferimenti ad entità di carattere o entità numeriche per tutti gli altri caratteri. Questo da il vantaggio che tali file possano essere apriti in quasi tutti gli editor a byte singolo. Lo svantaggio è che le entità numeriche non sono mnemoniche, e le entità di carattere devono essere dichiarate in DTD o un sottoinsieme interno, ma se sono rare, questo non dovrebbe essere un problema serio.

Bertilo Wennergren scrive:

UTF-16 è la codifica che rappresenta ogni carattere Unicode del primo piano (i primi 64K caratteri) di Unicode on un’unità a 16 bit – in pratica con due byte per ogni carattere. Dunque non è retro-compatibile ne con ASCII, ne con Latin-1  UTF-16 può anche accedere ad un milione di caratteri aggiuntivi con un meccanismo conosciuto come coppia surrogata (due unità a 16 bit per ogni carattere.

‘…i meccanismi per segnalare quale dei due è in uso, e per utilizzare altre codifiche, sono […] nella discussione della codifica dei caratteri.’ Le Specifiche XML  spiegano come specificare nei tuoi file XML quali gruppi di caratteri codificati stai usando.

‘Qualunque sia la codifica specifica usata, qualsiasi carattere nel gruppo di caratteri ISO 10646 potrebbe essere chiamato da un equivalente decimale o esadecimale della sua stringa in bit’: dunque non importa quale gruppo di carattere stia usando, puoi sempre fare riferimento a caratteri individuali specifici da un altro punto nel repertorio codificato usando &#dddd; (codice carattere decimale) o &#xHHHH; (codice carattere esadecimale, in maiuscolo). La terminologia può confondere, così come i numeri: vedi il  Dizionario Concettuale ISO 10646. Rick Jelliffe ha XML-izzato i gruppi di entità di caratteri ISO. La codifica di informazioni di Mike Brown su http://skew.org/xml/tutorial/ è una spiegazione molto utile del bisogno di una codifica corretta. C’è un database eccellente online di glifi e caratteri in molte forme di codifica da parte del server dell’Estonian Language Institute su http://www.eki.ee/letter/.

Leave a Comment

Your email address will not be published. Required fields are marked *