giovedì 31 maggio 2012

Uno dei problemi che più affligge uno sviluppatore quando si trova a dover realizzare siti multilingua è quella di riuscire a gestire al meglio la codifica dei caratteri, con questa semplice guida cerchiamo di risolvere definitivamente ogni problema.. Recentemente mi sono dovuto cimentare nella realizzazione di un sito multilingua in php che doveva supportare lingue con set di caratteri UTF-8, come il cirillico. Dopo aver sbattuto la testa più volte sono finalmente riuscito a trovare una soluzione definitiva per risolvere ogni tipo di problema, ecco qui proposti tutti i passi da eseguire:

1) Modifica FILES:

Assicuratevi che tutti i file che compongono il vostro sito siano codificati come UTF-8 senza BOM, per poterlo verificare aprite ogni file con un editor come l'ottimo Notepad++ o il classico blocco note. Se la codifica è diversa convertire il file o risalvatelo con la giusta giusta opzione.

2) Metatag HTML:
Una volta convertiti tutti i file è opportuno che nell'head delle pagine indichiate il giusto tipo di charset, ovvero UTF-8 come riportato qui di seguito:

<meta http-equiv="content-type" content="text/html; charset=UTF-8" />

3) Configurazioni MYSQL:
Adesso non resta altro da fare che impostare la giusta codifica anche al MYSQL, per farlo accedete al PhpMyAdmin e seguite le seguenti istruzioni.
  1) Selezionate il database interessato > cliccate su OPERAZIONI > in basso impostate come Collection utf8_general_ci > cliccate su esegui

  2) Adesso occorre seleziona ogni tabella del database e sempre da operazioni > Collection impostate per tutti il medesimo set di caratteri ovvero utf8_general_ci

  3) Stessa procedura occorre farla anche per ogni campo di ogni tabella quindi: selezionate la tabella > struttura > modifica campo > Collection utf_general_ci

4) Configurazioni PHP:
In ambiente php, occorre fare ancora 2 piccole variazioni per evitare così ogni problema:
1) Occorre lanciare una query subito dopo aver avviato la connessione al database in modo da comunicare a MYSQL
il tipo di set di caratteri che andremo ad utilizzare, per farlo basti utilizzare il seguente codice:

mysql_query("SET NAMES utf8");

2) E' consigliato d'indicare il tipo di charset anche mediante l'invio di un header, per farlo basti copiare ed incollare codice in testa ad ogni pagina:

header('Content-type: text/html; charset=utf-8');


Seguite e rispettate con attenzione questi punti e potrete finalmente supportare la codifica UTF-8 senza problemi nei vostri siti web. Se avete ancora dei problemi lasciate un commento qua sotto, alla prossima!



Fonte:http://www.timeforweb.it/notizia/utf-8-mysql-codifica-caratteri-e-caratteri-strani/

Nessun commento:

Posta un commento