Bonjour,
La solution était, en local, de convertir ton ancienne base au format utf-8 puis de transférer ensuite ces données sur ton nouveau site
Un script à adapter pour convertir ta base de données en utf8
<?php
/******************************************************************************/
/* */
/* __ ____ */
/* ___ / / ___ / __/__ __ _____________ ___ */
/* / _ / _ / _ _ / _ / // / __/ __/ -_|_-< */
/* / .__/_//_/ .__/___/___/_,_/_/ __/__/___/ */
/* /_/ /_/ */
/* */
/* */
/******************************************************************************/
/* */
/* Titre : Code pour convertir dans un format Latin ou UTF8 */
/* */
/* URL : http://www.phpsources.org/scripts299- ... ; */
/* Auteur : nixi54 */
/* Date édition : 29 Jan 2008 */
/* */
/******************************************************************************/
// http://www.phpsources.org/scripts299-MySQL.htm
die("faite un backup de votre database MySQL et enlever cette ligne");
set_time_limit(0);
// format de départ:
$convert_from = 'latin1_swedish_ci';
// Le format d'arrivée:
$convert_to = 'utf8_general_ci';
// Initialiser les caracteres dans le bon format:
$character_set= 'utf8';
$show_alter_table = true;
$show_alter_field = true;
// DB logs information
$username = 'user';
$password = 'pass';
$database = 'base';
$host = 'localhost';
mysql_connect($host, $username, $password);
mysql_select_db($database);
$rs_tables = mysql_query(" SHOW TABLES ") or die(mysql_error());
echo '<pre>';
while ($row_tables = mysql_fetch_row($rs_tables)) {
$table = mysql_real_escape_string($row_tables[0]);
// ALTER TABLE 'compte' DEFAULT CHARACTER SET utf8
if ($show_alter_table) {
echo("ALTER TABLE '$table' DEFAULT CHARACTER SET $character_set;rn");
}
$rs = mysql_query(" SHOW FULL FIELDS FROM '$table' ") or die(mysql_error());
while ($row=mysql_fetch_assoc($rs)) {
if ($row['Collation']!=$convert_from)
continue;
// le champ peut-etre null?
if ($row['Null']=='YES') {
$nullable = ' NULL ';
} else {
$nullable = ' NOT NULL';
}
// est-ce que les champs Default sont nul, une chaine, ou rien?
if ($row['Default']==NULL) {
$default = " DEFAULT NULL";
} else if ($row['Default']!='') {
$default = " DEFAULT '".mysql_real_escape_string($row['Default'])."'";
} else {
$default = '';
}
// ALTER TABLE 'compte' CHANGE 'email' 'email' VARCHAR( 50 ) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL
if ($show_alter_field) {
$field = mysql_real_escape_string($row['Field']);
echo "ALTER TABLE '$table' CHANGE '$field' '$field' $row[Type] CHARACTER SET $character_set COLLATE $convert_to $nullable $default; rn";
}
}
}
?>
ensuite, s'il te reste des caractères "bizarres", table par table et colonne par colonne, passer ces requêtes sql en l'adaptant - c'est ce que j'ai fais sur frxoops
/******* iso vers utf8 *******/
update nomdelatable set nomdelacolonne = replace(nomdelacolonne,'‘','’');
update nomdelatable set nomdelacolonne = replace(nomdelacolonne,'°','°');
update nomdelatable set nomdelacolonne = replace(nomdelacolonne,'á','á');
update nomdelatable set nomdelacolonne = replace(nomdelacolonne,'â','â');
update nomdelatable set nomdelacolonne = replace(nomdelacolonne,'ã','ã');
update nomdelatable set nomdelacolonne = replace(nomdelacolonne,'ä','ä');
update nomdelatable set nomdelacolonne = replace(nomdelacolonne,'Ã¥','å');
update nomdelatable set nomdelacolonne = replace(nomdelacolonne,'æ','æ');
update nomdelatable set nomdelacolonne = replace(nomdelacolonne,'ç','ç');
update nomdelatable set nomdelacolonne = replace(nomdelacolonne,'é','é');
update nomdelatable set nomdelacolonne = replace(nomdelacolonne,'è','è');
update nomdelatable set nomdelacolonne = replace(nomdelacolonne,'ê','ê');
update nomdelatable set nomdelacolonne = replace(nomdelacolonne,'ë','ë');
update nomdelatable set nomdelacolonne = replace(nomdelacolonne,'ì','ì');
update nomdelatable set nomdelacolonne = replace(nomdelacolonne,'î','î');
update nomdelatable set nomdelacolonne = replace(nomdelacolonne,'ï','ï');
update nomdelatable set nomdelacolonne = replace(nomdelacolonne,'ð','ð');
update nomdelatable set nomdelacolonne = replace(nomdelacolonne,'ñ','ñ');
update nomdelatable set nomdelacolonne = replace(nomdelacolonne,'ò','ò');
update nomdelatable set nomdelacolonne = replace(nomdelacolonne,'ó','ó');
update nomdelatable set nomdelacolonne = replace(nomdelacolonne,'ô','ô');
update nomdelatable set nomdelacolonne = replace(nomdelacolonne,'õ','õ');
update nomdelatable set nomdelacolonne = replace(nomdelacolonne,'ö','ö');
update nomdelatable set nomdelacolonne = replace(nomdelacolonne,'ù','ù');
update nomdelatable set nomdelacolonne = replace(nomdelacolonne,'ú','ú');
update nomdelatable set nomdelacolonne = replace(nomdelacolonne,'û','û');
update nomdelatable set nomdelacolonne = replace(nomdelacolonne,'ü','ü');
update nomdelatable set nomdelacolonne = replace(nomdelacolonne,'ý','ý');
update nomdelatable set nomdelacolonne = replace(nomdelacolonne,'Ã ','à');
update nomdelatable set nomdelacolonne = replace(nomdelacolonne,'Ã' ,'í');