Apache
Le codage du serveur doit être soit non défini, soit défini sur UTF-8. Cela se fait via la directive apache AddDefaultCharset. Cela peut aller au virtualhost ou au fichier général (voir documentation).
AddDefaultCharset utf-8
MySql
- Définissez le classement de la base de données sur UTF-8
- Définir l'encodage de connexion. Cela peut être fait comme quelqu'un l'a dit avec mysqli_set_charset, ou en envoyant ceci juste après la connexion :
SET NAMES 'utf8' COLLATE 'utf8_unicode_ci'
PHP
1- Vous devez définir le jeu de caractères HTML de la page en UTF-8, via une balise méta sur la page ou via un en-tête PHP :
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> -or- header('Content-type: text/html; charset=utf-8');
2- Vous devez toujours utiliser la version mb* des fonctions liées aux chaînes, par exemple, mbstrlen au lieu de strlen pour obtenir la longueur de chaîne d'une chaîne.
Cela devrait vous permettre d'avoir UTF-8 partout, des pages aux données. Un test que vous pouvez faire :faites un clic droit n'importe où sur la page en utilisant firefox, et sélectionnez Afficher les informations de la page. L'encodage effectif est répertorié dans cette page.