Thème > Développement
> > > Mysql données pas vraiement au format utf-8

Mysql données pas vraiement au format utf-8

Voici un problème d'accent dans un table Mysql en utf-8 que j'ai eu récemment et dont j'ai mis du temps à régler.

Le contexte :
Pour la Zone Info j'ai un Back-Office dont les pages sont en UTF-8;
Exemple de code :
<meta http-equiv="Content-type" content="text/html; charset=UTF-8"/>
et le fichier est au format utf-8 dans Eclipse.
Et j'ai crée des tables Mysql en utf8_general_ci

Pas de problème, jusqu'au jour où j'ai voulu faire un utf8_decode() sur les données et là, Misère! pas moyen sur certaines données de dés-encoder correctement.
J'ai passé des heures à comprendre pourquoi je n'arrivai pas à dés-encoder.

En fait, le problème ne venait pas du dés-encodage mais des données stockées dans la base. En effet tous les accents dans phpMyadmin étaient mal encodés.



La solution que j'ai trouvé est de faire un set name avant chaque requette.
Exemple de code :
mysql_query('SET NAMES "UTF8"');

J'ai pas retrouvé l'article mais il semble de mémoire que l'on peut paramétrer Mysql pour éviter de faire cette requette à chaque fois.