Italian SMF

Tutto su SMF => Italian SMF Team Blog => Discussione aperta da: emanuele il Lunedì - 25 Febbraio 2013 - 13:58

Titolo: UTF8 o non UTF8?
Inserito da: emanuele il Lunedì - 25 Febbraio 2013 - 13:58
Un recente problema (http://www.italiansmf.net/forum/index.php?topic=388.0) incontrato da fiorenzo mi ha fatto venir voglia di scrivere due parole sull'argomento.

I charset (o character encoding o codifica dei caratteri) (http://it.wikipedia.org/wiki/Codifica_di_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 (http://it.wikipedia.org/wiki/UTF-8) della wikipedia italiana ha qualche informazione, altrimenti quella inglese (http://en.wikipedia.org/wiki/UTF-8#Advantages_and_disadvantages) 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 (http://wiki.simplemachines.org/smf/Requirements_and_recommendations)).

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.
Titolo: Re:UTF8 o non UTF8?
Inserito da: Alex il Lunedì - 25 Febbraio 2013 - 14:34
molte grazie.

Oggi ne so una in più.
Titolo: Re:UTF8 o non UTF8?
Inserito da: gpezzarini il Lunedì - 17 Febbraio 2014 - 09:11
Ottimo, quindi nel mio 2.0.6 passo ad utf8 e non se ne parla più?

avrò casini con messaggi con codici strani? pazienza :)
Titolo: Re:UTF8 o non UTF8?
Inserito da: emanuele il Lunedì - 17 Febbraio 2014 - 22:07
Spetta un secondo! ;)

Stai installando o hai già il forum installato?
Titolo: Re:UTF8 o non UTF8?
Inserito da: gpezzarini il Martedì - 18 Febbraio 2014 - 07:29
forum operativo e bello zeppo
Titolo: Re:UTF8 o non UTF8?
Inserito da: Darknico il Martedì - 18 Febbraio 2014 - 07:31
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
Titolo: Re:UTF8 o non UTF8?
Inserito da: emanuele il Martedì - 18 Febbraio 2014 - 07:50
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...