[Soci SLIP] codifica caratteri

loredana llcfree a gmail.com
Ven 8 Apr 2011 11:28:30 CEST


2011/4/8 Enrico Agliotti <enrico.agliotti a gmail.com>

> Il 31 marzo 2011 13:33, loredana <llcfree a gmail.com> ha scritto:
> > Metto in attachment il pdf del messaggio di Alex, per farvi rendere conto
> di
> > quale sia
> > il problema della rappresentazione dei caratteri. Questo non vuol dire
> che
> > non sappia come configurare il sistema per avere i caratteri corretti,
> vuol
> > dire che il problema esiste (ed esiste anche la soluzione standard e
> > generale, per tutti
> > gli alfabeti del mondo).
>
> lo so bene che il problema esiste.
> io i caratteri di alex li vedo sbagliati ma diversi da come li vedi tu
> e a differenza di te, non capisco che devo fare per vederli bene
>

Nel pdf che avevo messo in allegato, se e' a quello che ti riferisci, i
caratteri
erano diversi da quelli che vediamo tu ed io con gmail. L'ho fatto perche'
ci si
rendesse conto che il problema esiste, anche se non capita a noi o ai nostri
amici, tutte le volte che si cerca di rendere dei caratteri non standard.
Quello
che succede dipende dall'applicazione e dal contesto.


> io uso gmail e dovrebbe essere gmail a mostrarmi i caratteri corretti,
> giusto?
>

No.

Il problema ha DUE aspetti, quello di come i caratteri vengono scritti
(codificati
al momento dell'input) E di come vengono riprodotti (dalle applicazioni che
te
li mostrano, gmail, open office, lettore pdf etc) che, in genere, dipendono
dal contesto locale (localizzazione del SO). Siccome la codifica del testo
e' una sola e invece le applicazioni sono potenzialmente infinite, il
problema si risolve quando si genera il testo, se lo si vuol risolvere
davvero e per tutte le applicazioni attuali e future.


> e comunque non stiamo forse usando tutti quanti unicode nella versione
> utf8?
>

Ovviamente no, se no il problema non esisterebbe.


> non capisco l'origine del problema
> mi dai qualche dritta?


Nel "vecchio" codice ASCII, solo 127 caratteri (7 bit) su 256 (8 bit) sono
standard (significa che per quelli la codifica e' sempre la stessa e percio'
li scrivi e li vedi nello stesso modo). Gli altri 127 sono stati usati nei
decenni scorsi in tutti i modi possibili e immaginabili per risolvere
problemi locali, tipo le vocali accentate in italiano. Ma, ahime', gli
accenti tedeschi, per esempio, sono diversi e percio' succede che allo
stesso codice (di quei 127 non standard) vengano assegnati due o piu'
caratteri diversi, a seconda se si e' in un contesto italiano e tedesco (per
esempio).

Questo ha creato infiniti problemi, che pero' sono esplosi solo con il www
(la
famosa globalizzazione, che li ha messi sotto il naso di tutti, anche dei
miliardi di persone che non li vedono :)

Per HTML esiste uno standard iso, in cui si scrive, per esempio, "&egrave;"
per "e`".  Se chi ha/scrive su un sito usasse lo standard, TUTTI i browsers
che rispettano lo standard mostrebbero  questi caratteri correttamente. Per
inciso, i DUE caratteri che uso io in email per le vocali accentate non sono
affatto standard, anche se leggibili da tutti  in tutto il mondo perche' sia
"e" che e "`" fanno parte del set dei 127 caratteri ASCII standard. Lo
standard prevede UN solo carattere, non due, come in "e`". Li uso perche' in
email son comodi e piu' che sufficienti per farsi capire. Pero' non li
vorrei mai vedere su una pagina web a mia firma, e questo spiega
l'insistenza a sapere come si fanno le cose per bene con Joomla! prima di
farle.

Unicode, nelle sue varie varianti, e' la soluzione universale attuale, che
vale per tutti i linguaggi, incluso HTML. In teoria, fa una cosa molto
semplice:

1) aumenta il numero di bit per la codifica dei caratteri (8 sono pochi,
bastano appena per 256 diversi codici/caratteri, visto che ogni bit puo'
solo assumere due valori distinti, 0 e 1)

2) assegna ad ogni carattere UNO ED UN SOLO codice. Questo vale per tutti i
linguaggi del mondo e anche per i linguaggi artificiali, come il braille o i
simboli matematici, quelli musicali etc. Con un numero sufficiente di bit si
codifica di
tutto.

In pratica, lo sforzo di standardizzazione unicode non serve a nulla se poi
chi scrive non usa un editor che produca caratteri unicode. Se lo facessimo
tutti, allora le applicazioni potrebbero essere certe, dato un codice, di
quale carattere si tratta e il problema sparirebbe perche' ne e' stata
eliminata la causa (quella vera).  O perlomeno il problema sarebbe
facilmente individuabile, perche' a questo punto e' certamente
l'applicazione che non fa quel che deve. Insomma, se ognuno fa la sua parte,
tutto bene. Se una parte non fa la sua parte e l'altra si', allora e solo
allora ha senso prendersela con l'altra parte
(dopo aver fatto la propria, altrimenti ha buon gioco l'accusa a vicenda e
non si fa nulla per il problema vero ...)

Resta ancora il problema dei fonts, che devono essere in grado di poter
rappresentare graficamente tutti i caratteri, anche se originariamente
sviluppati per l'Occidente. I fonts sono per lo piu' proprietari e
introducono un'altra componente non standard. Ma in teoria e stavolta anche
in pratica, se ci ci limita ad usare unicode + fonts standard quando si
producono documenti, tutte le applicazioni che rispettano gli standard
(tutti i browser, i lettori di pdf, open office etc) van bene, una volta che
il SO locale sia ben configurato. Fra parentesi, il problema della
portabilita' tra windows e GNU/linux dipende innanzitutto dalla
rappresentazione dei caratteri e dai fonts, prima ancora che dal formato
proprietario: un documento formattato con fonts proprietari non viene reso
nella stessa forma quando si usano altri fonts liberi, generando
disallineamenti, paginazioni diverse etc.

Nel tuo caso specifico, il problema lo risolvi usando lo stesso "locale",
cioe', la stessa codifica,  che ha usato Alex per scrivere. Siccome, "per
semplicita'", tutte queste informazioni ormai l'utente non le vede piu',
generare il problema senza neppure accorgersene e' semplicissimo, risolverlo
con una ricetta di due righe e' molto piu' complicato, e praticamente
impossibile senza sapere cos'ha usato Alex e cosa stai usando tu.

Gli editor online, ovviamente, peggiorano moltissimo la situazione rispetto
a quelli sul tuo PC. In genere e' piu' difficile configurarli (e, a volte,
impossibile, per problemi di sicurezza o altro). Non parliamo poi di sms e
altra roba cosi'.

C'e un comprensibile problema di inerzia (il passato) ma quello che stupisce
e un po' dispera e' che si continui a costruire con gli stessi errori il
nuovo, quando ormai la soluzione c'e'. Tra quando si sa a quando si fa passa
troppo tempo e per recuperare il futuro questo tempo bisogna accorciarlo
(ruolo
primario dell'educazione? O una mia fissa?)

Il problema della codifica dei caratteri e' lo stesso della codifica video.
Non si
risolvera' mai, a meno che non ci si metta daccordo sui codici usati. Poi i
browsers che implementano lo standard hanno i tag opportuni, ma questo non
basta, se chi produce sia testo che immagini o video non lo fa in modo
standard.
Storicamente, non "ci si mette daccordo", cosa chiaramente impossibile a
livello
globale. Bisogna che si cominci a fare, da soli, in pochi, se non ci sono
altri. Poi quancuno "vince" (per un po', tutto scorre).

Ah, diffido chiunque dal prendere questo testo e metterlo sul nuovo sito,
non
per malinteso senso di proprieta', ma per beninteso senso del suo contenuto
(non ha i caratteri adatti :)

Ovviamente, non c'e' assolutamente niente di personale in quello che scrivo.
Mi sento in dovere di specificarlo solo perche' c'e il vezzo di occuparsi
delle faccende personali anziche' dei problemi. Io me la prendo solo con i
problemi e provo a risolvere quelli (non riuscendoci quasi mai :(

Loredana
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: http://mailman.pinerolo.linux.it/pipermail/soci/attachments/20110408/fd1c9142/attachment.html


Maggiori informazioni sulla lista Soci