Lorsqu’on créait des tables Mysql avec PhpMyAdmin (par exemple), elles sont créés par défaut avec l’encodage latin1 (ISO-8859-1).
Même en convertissant manuellement les tables en UTF8, PHP interprète toujours les données de la table au format latin1, ce qui se traduit par des erreurs d’affichage sur les caractères spéciaux.
Le fait que le fichier source PHP ait UTF-8 comme encodage par défaut (paramètre définit dans Dreamweaver) et que le meta http-equiv=”Content-Type” est bien défini à text/html; charset=utf-8 n’y changera rien.
La solution :
Après avoir établi la connexion à la base de données, on défini le type d’encodage via la fonction
mysql_set_charset("utf8");
Ce qui donne par exemple :
class dBEx {
private $dbh;
private $encodage:
function connect ($dbuser, $dbpassword, $dbname, $dbhost) {
$this->dbh = @mysql_connect($dbhost, $dbuser, $dbpassword);
$this->encodage = mysql_set_charset("UTF-8");
...
}
...
}
PHP et Apache affichent maintenant les caractères en UTF-8 tels quels dans la table.





