enycu
13/04/2007, 19h55
On peut faire la conversion d'une base d'une manière beaucoup plus propre, moins bricolée, et sans erreur avec un script php:
Ce script force la conversion avec l'encodage choisi et fait une sauvegarde (dump) de la base. Donc, si votre base est en latin1, elle sera convertie en utf8. Puis, importez la base avec phpMyadmin ou l'excellent bigdump (http://www.ozerov.de/bigdump.php) en choisissant le bon encodage de caractère.
Code PHP:
//** Modifiez vos parametres MySQL **//
$db_server = "ServeurMySQL";
$db_name = "NomDeLaBaseSQL";
$db_username = "IdentifiantSQL";
$db_password = "MotDePasseSQL";
$db_charset = "utf8"; //* mettre utf8 ou latin1 *//
//** C'est tout. Placez ce fichier par FTP quelque part sur votre serveur Web, dans un endroit discret. **//
//** Puis ouvrez-le avec votre navigateur web et suivez les instructions. **//
echo "Ce script cree une sauvegarde de la base de donnees avec l'encodage du jeu de caracteres $db_charset . \n
\n
Le fichier de sauvegarde est au meme endroit que ce script. \n
\n
";
echo "Votre base est en cours de sauvegarde.......\n
";
if (system("mysqldump --host=$db_server --user=$db_username --password=$db_password -C -Q -e --default-character-set=$db_charset $db_name | gzip -c > $db_name-$db_charset.sql.gz"));
echo "\n
";
echo "C'est fini. Vous pouvez recuperer le fichier de sauvegarde. Il s'appelle: $db_name-$db_charset.sql.gz\">$db_name-$db_charset.sql.gz (faites un clic-droit, et enregistrez sous... , ou enregistrez la cible du lien sous...) \n
\n
N'oubliez pas d'effacer ce fichier de votre serveur par FTP car il contient des mots de passe.\n
\n
";
?>