MySQL : Quand l'encodage veut votre peau !

Comment résoudre les problèmes d'encodage sur MySQL ?

12 mars 2012

L'encodage est l'un des plus grands casse-têtes pour les développeurs qui n'utilisent pas de frameworks ou CMS. Je pense que le temps que j'ai moi-même passé sur des problèmes d'encodage se compte en dizaines heures.

Les problèmes d'encodage peuvent apparaître de multiples façons :

  • Une mauvaise balise meta.
  • Un mauvais encodage du fichier qui affiche les données.
  • Un mauvais encodage d'une table dans la base de données.
  • Une utilisation de la fonction PHP htmlentities. Regardez le manuel, htmlentities est par défaut en iso, si vous voulez de l'UTF-8 il faut le préciser.
  • Un changement d'encodage récent : lorsque vous changez l'encodage d'une table, pensez à changer l'encodage des données à l'intérieur. Vous pouvez mettre de l'eau dans une bouteille de vodka, ça y ressemblera vu de l'extérieur mais ça restera de l'eau.
  • Et bien d'autres etc...

Voici une requête qui résoudra tous vos problèmes d'encodage liés à une base de données. Exécutez cette requête juste après la connexion à la base de données avec un mysql_query ou autre.

CODE

SET
character_set_results = 'utf8',
character_set_client = 'utf8',
character_set_connection = 'utf8',
character_set_database = 'utf8',
character_set_server = 'utf8'
	

Evidemment si vous voulez autre chose que de l'UTF-8, il vous suffit de modifier cette requête.

Par
Créateur et administrateur.

Dans la même catégorie

MySQL: comment faire une requête sur la description d'une table
MySQL : order by selon la valeur des champs
MySQL ON DUPLICATE KEY UPDATE : insérer ou mettre à jour une ligne
MySQL : une table pivot dynamique
SQL : faire un select sur une liste de valeurs
MySQL : créer une table à partir d'un select
MySQL : copier une table
MySQL REPLACE : insérer ou mettre à jour une ligne
MSSQL : Trouver le message qui correspond à un code d'erreur
MySQL : Comment autoriser les connexions distantes ?
mysqldump : Comment ne pas prendre en compte une table ?
Dump d'une table MySQL avec une requête
MySQL en ligne de commande
DELETE avec des jointures
Sauvegarder automatiquement une base de données MySQL

Commentaire(s)