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:
[CODE][/CODE]
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.
A) Selezionate il database interessato > cliccate su OPERAZIONI > in basso impostate come Collection utf8_general_ci > cliccate su esegui
B) Adesso occorre seleziona ogni tabella del database e sempre da operazioni > Collection impostate per tutti il medesimo set di caratteri ovvero utf8_general_ci
C) 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:
A) 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:
[CODE]mysql_query("SET NAMES utf8");[/CODE]
B) 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:
[CODE]header('Content-type: text/html; charset=utf-8');[/CODE]
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!