DI RECENTE ACCOMAZZI...
CERCA
» Ricerca avanzata
MAILING LIST

Se vuoi iscriverti alla mailing list di Luca Accomazzi inserisci qui la tua mail:

Vuoi ricevere i messaggi immediatamente (50 invii / giorno) o in differita e in gruppo
(due invii / giorno)?

» Vuoi saperne di più?

A domanda rispondo - sezione Internet

Set di caratteri nella posta elettronica

Mi capita di ricevere posta da qualcuno che scrive con un altro sistema operativo. ed utilizza (ovviamente) gli accenti, gli apostrofi.. insomma,
scrive.

Accade che il mio programma di posta elettronica abbia una opzione chiamata "Codifica dei testi" impostata su "default", ed alcuni caratteri non vengono visualizzati correttamente (apostrofi, accentate); se imposto manualmente la codifica del testo al valore "8859-I" o qualcosa del genere allora si legge tutto correttamente; poi però questa impostazione non viene memorizzata, e all'apertura del successivo l'opzione si riposiziona in Default.
Perché? E poi, chi determina il default della codifica?

Riccardo Ghiglianovich

Lo 8859-1 (uno, non "i") è lo standard ISO per l'alfabeto latino occidentale. Windows non lo usa normalmente, ma gli preferisce il solito non-standard Microsoft, che si chiama codepage 1241.

Lo stesso alfabeto (quindi le stesse problematiche) si usa sul web.

Tutte le mail andrebbero mandate in un formato standard internazionale comprensibile da tutti i possibili destinatari (che usino Mac OS classico, Unix, Windows o qualsiasi altra cosa). Questo standard si chiama ISO 8859 e presenta una serie di alternative. Se scrivi in russo usando il cirillico dovresti usare lo ISO 8859-5, per il greco ISO 8859-7, per l'ebraico 8859-8 eccetera). Per definizione devono essere leggibili da qualsiasi sistema operativo destinatario. È compito del mittente effettuare la conversione dal sistema non standard usato internamente e indicarlo esplicitamente. Se guardi il sorgente di una mail (una opzione quasi sempre possibile nei programmi, ma ben nascosta nei punti più svariati) troverai una riga che dice esplicitamente qualcosa del genere:
Content-type: text/plain; charset="ISO-8859-1".

A volte si desidera usare un carattere non presente in un singolo set di caratteri ISO 8859. Per esempio immagina di voler scrivere un messaggio di posta che contiene una frase in italiano (ISO 8859-1) e una in arabo (ISO 8859-6). Oppure di voler usare il simbolo dell'euro, che non è presente in ISO 8859-1. In questi casi bisogna passare alla codifica Unicode, la supercodifica che contiene tutte le lettere di tutti gli alfabeti. E' l'unico modo standard, efficace e certo, ma non tutti i programmi di posta lo supportano correttamente. Lo Unicode nel corpo delle mail è considerato standard perlomeno dall'agosto 1998 (si veda in fatti la RFC 2384) e tutti i programmi da allora si sarebbero dovuti adattare per supportare questo nuovo, fondamentale standard dell'Internet". Però ho scritto "si sarebbero dovuti", non "si sono"...

Di recente, per esempio, mi è capitata una situazione buffa. Una persona, chiamiamola A, scrive a B e C. B legge bene il suo messaggio e risponde a entrambi. C non legge bene il messaggio di A -- ci trobva dentro simboli incomprensibili -- ma se lo trova citato da B in un formato perfettamente leggibile. A invece non si ritrova.

La spiegazione: A ha scritto in Unicode. Il programma di C è vecchio o scritto male e non riesce a visualizzarlo correttamente. B ha risposto usando un programma che evidentemente legge Unicode (B vede il simbolo dell'Euro introdotto da A nel testo) ma ha inviato la sua risposta usando ISO-8859-1 (Latin-1). Quel set di caratteri, come dicevamo NON contiene un codice per l'Euro, ma CONTIENE un codice per "simbolo di valuta sconosciuta". B e C però usano lo stesso sistema operativo e quindi il carattere non standard dell'Euro inviato da B è leggibile per C senza conversione.

La citazione effettuata da B è codificata in modo non standard e per questo motivo non verrà necessariamente visualizzata correttamente da A.