UTF8 o non UTF8?

Aperto da emanuele, Lunedì - 25 Febbraio 2013 - 13:58

0 Utenti e 1 Visitatore stanno visualizzando questa discussione.

emanuele

Un recente problema incontrato da fiorenzo mi ha fatto venir voglia di scrivere due parole sull'argomento.

I charset (o character encoding o codifica dei caratteri) descrivono la corrispondenza tra un "codice" ed un certo carattere (che verrà mostrato a video).
In informatica, come al solito, c'è un bel casino, con una nutrita schiera di charset. Alcuni sono usabili solo per limitati set di lingue (ad esempio quelli della serie "ISO 8859" o i "windows-125x", ecc.), quindi se si vuole rappresentare dei caratteri di una determinata lingua si dovrà usare un certo set, se si vuole usare un'altra lingua se ne dovrà usare uno diverso. Altri invece sono più generici (come ad esempio UTF-8) e possono rappresentare caratteri di (quasi) tutte le lingue esistenti al mondo.

SMF nasce con supporto sia ai formati ISO/windows/altri (a seconda della lingua), sia al formato UTF-8 e sta all'utente decidere cosa usare in fase di installazione.
Ora vi chiederete: ma perché non si è scelto dall'inizio di usare solamente UTF-8?
Perché UTF-8 ha qualche minimo svantaggio, ad esempio occupa leggermente più spazio, alcune operazioni risultano leggermente più lente, ecc. (se volete entrare nei dettagli, la pagina UTF-8 della wikipedia italiana ha qualche informazione, altrimenti quella inglese ha una lunga lista).
In passato tali svantaggi erano tendenzialmente più rilevanti, al giorno d'oggi sono pressoché irrisori per vari motivi (non ultimo il fatto che dalla versione 2.1 di SMF il supporto a vecchie versioni di PHP è stato abbandonato rendendo PHP 5.1 il minimo richiesto. SMF 2.0 è ancora in grado di girare su PHP 4.1).

Non entro poi nel merito dei problemi che le tante codifiche supportate hanno creato ad SMF (a partire dall'avere due set di traduzioni, al fatto che alcune modifiche non hanno mai tenuto conto del charset creando così problemi, al fatto di dover supportare la conversione, ecc.).

Quindi, in sintesi, meglio scegliere UTF-8 o no?
Il futuro è indubbiamente UTF-8. A partire da SMF 2.1 il charset di default durante l'installazione sarà UTF-8 ed il piano è di eliminare il supporto alle vecchie codifiche "prima o poi" (in verità si era valutato di eliminarlo già a partire da 2.1, ma poi per evitare una fase di testing troppo estesa si è preferito aspettare).
Mio consiglio: se dovete installare un forum nuovo, meglio partire già da UTF-8.

Alex

molte grazie.

Oggi ne so una in più.

gpezzarini

Ottimo, quindi nel mio 2.0.6 passo ad utf8 e non se ne parla più?

avrò casini con messaggi con codici strani? pazienza :)
Che fatica far capire la comodità del forum

emanuele

Spetta un secondo! ;)

Stai installando o hai già il forum installato?

gpezzarini

forum operativo e bello zeppo
Che fatica far capire la comodità del forum

Darknico

Citazione di: gpezzarini il Martedì - 18 Febbraio 2014 - 07:29
forum operativo e bello zeppo

mmmhhh... allora la conversione "potrebbe" non essere indolore....
Ma meglio sentire ema
Non supporto privatamente, non risponderei e ci rimarreste male....

emanuele

La conversione *dovrebbe* essere indolore, teoria.
In passato ho visto parecchi casi di casini, ovviamente bisognerebbe capire dove il casino è cominciato, ma non ci è dato sapere, quindi mettiamoci nel peggior caso possibile e immaginiamo che sia cominciato dalla conversione. ;)

Ci sono vari fattori da considerare, quindi quello che io farei, se possibile, è "clonare" interamente il forum in un'altra directory ed in un altro database (sempre sullo stesso host, senza usare la funzione esporta, ma proprio copiando tutte le tabelle, c'è un'opzione da qualche parte in phpmyadmin). Ed a questo punto correggere tutte le impostazioni tramite repair_settings così che il nuovo forum lavori correttamente.
Fatto ciò, andare a fare la conversione lì e verificare che tutto funzioni a dovere, quindi principalmente che postando lettere accentate il messaggio non venga troncato, oppure che quello che viene restituito non siano punti di domanda o quadrati neri, ecc.
Non dimenticare che, una volta convertiti a utf8 vanno cambiati anche i file di lingua con quelli della versione utf8, e che quindi se erano state installate traduzioni di mod sarà necessario ri-applicarle (solitamente a mano).

Attenzione mentre cloni il forum a correggere i percorsi e le url, altrimenti potresti ritrovarti nel giro di un click a lavorare sul forum vero e non sul clone.

Ci sarebbe altro da dire, ma ora devo andare...

Discussioni simili (3)