Перейти к содержанию

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


Рекомендуемые сообщения

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

 

Мне нужно переконвертировать всю БД из 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

Ссылка на комментарий
Поделиться на другие сайты

<?
$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);
?>
Ссылка на комментарий
Поделиться на другие сайты

Без перекодировки выглядит таким образом (выкладываю, потому что кому-нибудь точно пригодится)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

Ссылка на комментарий
Поделиться на другие сайты

Без перекодировки выглядит таким образом (выкладываю, потому что кому-нибудь точно пригодится)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 тоже крякозябры! 

Ссылка на комментарий
Поделиться на другие сайты

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

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

 

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

 

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

Ссылка на комментарий
Поделиться на другие сайты

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

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

 

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

 

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

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

Ссылка на комментарий
Поделиться на другие сайты

Неужели способ во втором сообщении от WOLF не помог?

Ссылка на комментарий
Поделиться на другие сайты

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

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

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

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...