Apache
La codifica del server deve essere non impostata o impostata su UTF-8. Questo viene fatto tramite la direttiva apache AddDefaultCharset. Questo può andare al virtualhost o al file generale (vedi documentazione).
AddDefaultCharset utf-8
MySql
- Imposta le regole di confronto del database su UTF-8
- Imposta la codifica della connessione. Può essere fatto come qualcuno ha detto con mysqli_set_charset, o inviando questo subito dopo la connessione:
SET NAMES 'utf8' COLLATE 'utf8_unicode_ci'
PHP
1- Dovresti impostare il charset HTML della pagina in modo che sia UTF-8, tramite un meta tag sulla pagina o tramite un'intestazione PHP:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> -or- header('Content-type: text/html; charset=utf-8');
2- Dovresti sempre usare la versione mb* delle funzioni relative alle stringhe, ad esempio mbstrlen invece di strlen per ottenere la lunghezza della stringa di una stringa.
Questo dovrebbe permetterti di avere UTF-8 ovunque, dalle pagine ai dati. Un test che puoi eseguire:fai clic con il pulsante destro del mouse in un punto qualsiasi della pagina utilizzando Firefox e seleziona Mostra informazioni sulla pagina. La codifica effettiva è elencata in quella pagina.