Jump to content

Как переконвертировать БД с latin1 в UTF-8

Featured Replies

Posted
comment_78994

Появилась проблема, которая мучает уже очень долго и много...

 

Мне нужно переконвертировать всю БД из latin1 в UTF-8, пробовал с sypex dumper, но он не доходя до конца выдает ошибку 

 

Есть проверенный способ конвертации всей БД?

 

К примеру сейчас выглядит так, post-1113-0-10595600-1421876068_thumb.pn

 

После конвертации (неполной с sypex dumper), слова отображает нормально, но форум в целом не открывается и показывает ошибку Driver Error, мол ошибка с базой данных


Сейчас с учетом этой проблемы, один хостинг на котором я сейчас располагаюсь отображает все ок (непонятным мне образом), другой же на который хочу перейти выдает крякозябры при открытии форума, и решение мое добавление в htaccess:  AddDefaultCharset utf-8

post-1113-0-17870900-1421876026_thumb.pn

post-1113-0-66075900-1421876027_thumb.pn

comment_78996
<?
$dbhost = #sql_host
$dbuser = #sql_user
$dbpass = #sql_pass
$dbname = #sql_database

header('Content-type: text/plain');

$dbconn = mysql_connect($dbhost, $dbuser, $dbpass) or die( mysql_error() );
$db = mysql_select_db($dbname) or die( mysql_error() );

$sql = "ALTER DATABASE `".$dbname."` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci";
$result = mysql_query($sql) or die( mysql_error() );
print "Database changed to UTF-8.n";

$sql = 'SHOW TABLES';
$result = mysql_query($sql) or die( mysql_error() );

while ( $row = mysql_fetch_row($result) )
{
$table = mysql_real_escape_string($row[0]);
$sql = "ALTER TABLE $table DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci, 
  CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci";
mysql_query($sql) or die( mysql_error() );
print "$table changed to UTF-8.n";
}

mysql_close($dbconn);
?>
  • Author
comment_78997

Без перекодировки выглядит таким образом (выкладываю, потому что кому-нибудь точно пригодится)post-1113-0-55764200-1421878922_thumb.pn

 

далее добавляю в htaccess: AddDefaultCharset utf-8 и все окей. 

 

Теперь же появилось много Warnings: Что с ними делать? post-1113-0-37934800-1421879396_thumb.pn

 

 

 

 

 

 php_flag display_errors off в htaccess не помогает post-1113-0-23030700-1421879392_thumb.pn

  • Author
comment_78998

Без перекодировки выглядит таким образом (выкладываю, потому что кому-нибудь точно пригодится)post-1113-0-55764200-1421878922_thumb.pn

 

далее добавляю в htaccess: AddDefaultCharset utf-8 и все окей. 

 

Теперь же появилось много Warnings: Что с ними делать? post-1113-0-37934800-1421879396_thumb.pn

 

 

 

 

 

 php_flag display_errors off в htaccess не помогает post-1113-0-23030700-1421879392_thumb.pn


Прогнал базу через ваш скрипт, теперь БД действительно полностью стала UTF-8, но это не помогло, крякозябры остались. Попробовал в conf_global.php поменять latin1 на utf-8 выдает такое  post-1113-0-56525200-1421879895_thumb.pn


Итак, попробую подытожить, что у меня вообще за ситуация. 

 

1. Если в conf_global.php оставить latin1 и через .htacces добавить AddDefaultCharset utf-8, то форум функционирует, но выдает много Warnings - (но на самом деле это не лучший способ решения проблемы, но уже хоть что-то)

2. После конвертации БД в UTF-8 - крякозябры остались и при отображении и в phpmyadmin


Надеюсь на вашу помощь форумчане, уже весь мозг съел этот форум... Повторюсь, на старом хостинге без AddDefaultCharset utf-8 и без каких-либо заморочек все работает, хотя в phpmyadmin тоже крякозябры! 

comment_79393

Можно попробовать сделать дамп в phpMyAdmin

Потом открыть этот дамп скажем в EditPlus, заменить везде значения latin1 на правильные значение utf, сохранить файл в кодировке utf-8

 

Удалить старую базу форума в phpmyadmin, создать новую в utf. И восстановиться из файла с базой, который редактировали

 

Такие манипуляции с форумами  на phpBB у меня прокатывали =)

  • Author
comment_79506

Можно попробовать сделать дамп в phpMyAdmin

Потом открыть этот дамп скажем в EditPlus, заменить везде значения latin1 на правильные значение utf, сохранить файл в кодировке utf-8

 

Удалить старую базу форума в phpmyadmin, создать новую в utf. И восстановиться из файла с базой, который редактировали

 

Такие манипуляции с форумами  на phpBB у меня прокатывали =)

а как я буду в ручную везде менять значения? их же там огромное количество

comment_79513

а как я буду в ручную везде менять значения? их же там огромное количество

Найти определенное значение и заменить на нужное, массово

Хотя если такие вопросы задаёте, думаю не стоит тогда делать.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.


Guest
Ответить в этой теме...

Последние посетители 0

  • No registered users viewing this page.