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/