Aby som existujúcu databázu previedol z euc-kr na utf8, najprv som si starostlivo (??) vytvoril zálohu.
Keď som ju otvoril v EditPlus, zobrazilo sa upozornenie, že obsahuje znaky, ktoré sa môžu v aktuálnom kódovaní stratiť,
Najprv som to ignoroval, zmenil kódovanie na UTF8 a importoval… Dočerta ㅠㅠ Nešlo to, pretože znaky boli poškodené.
Rýchlo som hľadal~~~~, ale napokon sa riešenie nenašlo..
(Takéto prípady, keď to nejde ani po zadaní všetkých možností vrátane –default-character-set pri dumpe, sú naozaj ㅠㅠ)
Nedalo sa nič robiť, tak som našiel nasledujúci zdrojový kód a upravil ho podľa svojich potrieb (prevod do UTF8, výber požadovaných tabuliek).
Prevod overený!!!! – Prevod je ako vždy otravný a únavný ㅠㅠ
[PHP]
$mysql_host = '********';
$mysql_db = '********';
$mysql_user = '********';
$mysql_pass = '********';
$fileName = 'db-backup';
$extention = "sql";
// Iba potrebné tabuľky~
$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, ak chcete vytvoriť úplné príkazy INSERT
$drop = true; // true, ak chcete zahrnúť príkaz DROP TABLE
mysql_connect( $mysql_host, $mysql_user, $mysql_pass ) || die("Nepodarilo sa pripojiť k databáze.");
mysql_select_db( $mysql_db ) || die("Pripojenie k DB zlyhalo");
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
# Hostiteľ: „.$mysql_host.“
# Čas spracovania: „.date(‚Y r. n mes. j d. H h i min‘).“
# Verzia servera: „.mysql_get_server_info().“
# Databáza : `“.$mysql_db.“`
# ——————————————————–nnnnn“;
while($rows = mysql_fetch_row($tables[0]))
{
$chk = false;
for($i=0;$i
[/PHP]




