Del 05/01/2011 di Simone Lazzeri, in Guide Mysql
Commenta!
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!
Ottimo. Ha funzionato al primo colpo. Sono mesi che metto pezze tra pagine web e database...
Grazie finalmente una soluzione completa a questo problema! mi hai salvato la vita ! GRANDE
mi ha risolto il problema degli accentati. grazie
Dopo molto peregrinare in cerca di una soluzione, sono approdato a questa pagina, e ho potuto risolvere immediatamente il mio problema. Grazie! Veramente essenziale ed efficace l'articolo.
Un articolo davvero interessante, con semplici parole avete spiegato un problema serio per noi sviluppatori. Ho seguito alla lettera il tutto e non ho più problemi di visualizzazione sulla visualizzazione ad esempio del cirillico. GRAZIE!
Google festeggia il 100° anniversario della nascita di Robert Doisneau, famoso fotografo Francese, con un Doodle realizzato mediante alcune delle sue...