Depuis maintenant plus de cinq ans que je développe en PHP j’ai toujours eu un soucis avec la gestion de l’encodage. Avec le temps j’ai glané ici et là des solutions pour que tout soit encodé en UTF-8 mais il m’en manquait une au niveau de la base de donnée. Voici le résumé des quelques règles pour l’encodage que j’applique à tous mes projets (rien de nouveau je vous rassure, c’est juste un résumé) :
Encodage des fichiers
Il faut évidemment que tous les fichiers soient en UTF-8 c’est une évidence, pour se faire il faut utiliser votre éditeur et lui indiquer ce format.
Déclaration du charset dans le fichier HTML
Dans le head de chaque page de votre il faut déclarer le charset grâce à cette ligne de code :
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
Changer le header envoyé au navigateur dans le PHP
Au début de votre page il faut utiliser cette ligne de code en PHP qui permet de spécifier le bon format :
header('Content-Type: text/html; charset=utf-8');
Gérer la relation avec la base de donnée
Voici la solution qui me manquait, après avoir établi la connexion avec votre base donnée il suffit de lancer cette requête SQL pour que toutes les communications soient faites en UTF-8 :
SET NAMES UTF8
Donner le bon format à vos bases de donnée
Dans PhpMyAdmin il faut donner à chacune de vos tables et de vos champs textes le bon format, évidemment l’UTF-8.
Maintenant que je connais toutes ces étapes je n’ai plus de soucis avec mes projets, j’ai passé tellement de temps à m’énerver devant mon écran parce que les accents ne passaient pas que je suis réellement soulagé maintenant.