Pour convertir la base de données existante de euc-kr en utf8, j’ai d’abord fait une sauvegarde consciencieuse (??), puis
je l’ai ouverte avec EditPlus. Le message indique qu’elle contient des caractères qui risquent d’être perdus avec l’encodage actuel,
j’ignore l’avertissement, je passe en UTF8 et j’importe… Mince ㅠㅠ Impossible à cause des caractères illisibles.
Recherche urgente~~~~ Au final, impossible de trouver une solution…
(Même en indiquant toutes les options, jusqu’à –default-character-set, lors du dump, ça ne fonctionne pas dans ce genre de cas ㅠㅠ)
Je n’ai pas le choix : je trouve le code ci-dessous et le modifie à mon goût (conversion en UTF8, sélection des tables voulues).
Migration confirmée, c’est bon !!!! – Migrer, c’est toujours aussi pénible et fatigant ㅠㅠ
[PHP]
$mysql_host = '********';
$mysql_db = '********';
$mysql_user = '********';
$mysql_pass = '********';
$fileName = 'db-backup';
$extention = "sql";
// Uniquement les tables nécessaires~
$select[] = 'g4_board';
$select[] = 'g4_board_file';
$select[] = 'g4_board_good';
$select[] = 'g4_board_new';
$select[] = 'g4_config';
$select[] = 'g4_group';
$select[] = 'g4_group_member';
$select[] = 'g4_write_cast';
$select[] = 'g4_write_delphibbs';
$select[] = 'g4_write_english';
$select[] = 'g4_write_girl';
$select[] = 'g4_write_gy';
$select[] = 'g4_write_humor';
$select[] = 'g4_write_module';
$select[] = 'g4_write_mypage';
$select[] = 'g4_write_notice';
$select[] = 'g4_write_poll';
$select[] = 'g4_write_qna';
$select[] = 'g4_write_skin';
$select[] = 'g4_write_talk';
$select[] = 'g4_write_temp';
$select[] = 'g4_write_temppds';
$select[] = 'g4_write_test';
$select[] = 'g4_write_tiptech';
$select[] = 'g4_write_varios';
$all = false; // true pour générer des instructions INSERT complètes
$drop = true; // true pour inclure l’instruction DROP TABLE
mysql_connect( $mysql_host, $mysql_user, $mysql_pass ) || die("Échec de la connexion à la base de données.");
mysql_select_db( $mysql_db ) || die("Échec de la connexion à la DB");
function bak_getTableNames($db)
{
$result[0] = mysql_list_tables($db);
$result[1] = mysql_num_rows($result[0]);
return $result;
}
function bak_getFields($table)
{
global $all;
$result = mysql_query("show fields from $table");
$i = 0;
while($keys = mysql_fetch_array($result))
{
if(!$i) $defaultOrder = $keys[Field];
if($keys[Key] == 'PRI')
{
$orderby = $keys[Field];
break;
}
$i++;
}
if(!$orderby) $orderby = $defaultOrder;
$result = mysql_query("select * from $table order by $orderby");
$nums = mysql_num_fields($result);
if($all == true)
{
for($i=0;$i<$nums;$i++)
{
$fields[] = mysql_field_name($result,$i);
}
$fields = "(".implode(",",$fields).") ";
}
while($rows = mysql_fetch_row($result))
{
for($i=0;$i<$nums;$i++)
{
$temp = $rows[$i];
$temp = str_replace("'","''", $temp);
$temp = str_replace("","\", $temp);
$temp = str_replace("n",'n', $temp);
$temp = str_replace("r",'r', $temp);
$temp = iconv('CP949', 'UTF-8', $temp);
$insertValues[$i] = $temp;
}
$return .= "INSERT INTO $table ".$fields."values ('".implode("','",$insertValues)."');n";
}
return $return;
}
$tables = bak_getTableNames($mysql_db);
if($tables[1] > 0)
{
$backText = »
# MysqlDump
# Hôte : « .$mysql_host. »
# Heure de traitement : « .date(‘Y-m-d H:i’). »
# Version du serveur : « .mysql_get_server_info(). »
# Base de données : ` ».$mysql_db. »`
# ——————————————————–nnnnn »;
while($rows = mysql_fetch_row($tables[0]))
{
$chk = false;
for($i=0;$i
[/PHP]



