PRATIQUE OUTILS 
Modifier l'encodage d'une base de données.
 
"Ma base de données est apparemment à la norme iso-8859-1. Je veux la passer en utf-8, mais phpMyAdmin ne semble pas proposer cette option. Comment faire ?" (06/12/2005)
  Forum

Réagissez dans les forums de JDN Développeurs

UTF-8 devenant de plus en plus l'encodage de choix pour les applications Web, survient obligatoirement le problème de convertir son contenu dans cet encodage. Sans la fonctionnalité au sein d'outils comme phpMyAdmin, il faut s'en sortir en mettant la main à la pâte.

En l'occurence, il faudra exporter l'ensemble des données de la table dans un fichier texte non compressé. Cela peut se faire directement via la page Export de phpMyAdmin, ou avec une ligne de commande :

mysqldump --opt -u root -p domaine_base > domaine_base.sql

Après en avoir fait une copie pour conserver l'original, la conversion se fera directement à l'aide d'un éditeur de texte simple, comme le Bloc-note, ou un outil dédié, comme iconv.

Dans le premier cas, le fichier SQL est simplement chargé dans le Bloc-note, puis sauvegardé tel quel. Seule exigence : sélectionner l'encodage voulu, ici UTF-8, dans le dialogue de sauvegarde.


Dans le second cas, on utilise iconv, une commande en ligne spécialement conçue pour convertir des caractères d'un codage vers un autre. Voici la conversion de notre fichier :

iconv -f iso-8859-15 -t utf8 domaine_base.sql > domaine_base-utf8.sql

Une fois que l'on a obtenu notre fichier encodé en UTF-8, il ne reste qu'à l'importer, soit avec la page dédiée de phpMyAdmin, soit en ligne de commande :

mysql -u root -p domaine_base.sql < domaine_base-utf8.sql

 
Xavier Borderie, JDN Développeurs
 
 
Accueil | Haut de page