Перенос из базы в базу с разными кодировками

Тема в разделе "Базы данных", создана пользователем itpeople, 4 дек 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. itpeople

    itpeople

    Регистр.:
    6 дек 2007
    Сообщения:
    546
    Симпатии:
    62
    Есть одна база mysql в кодировке 1251, есть база в кодировке utf8 - можно-ли таблицы из первой базы перенести во вторую или лучше забыть?
    База utf8 пустая, база 1251 немного заполнена и если смысла заморачиваться нет, то просто начну с нуля, так как не критично.
     
  2. Сергiй

    Сергiй

    Регистр.:
    19 ноя 2006
    Сообщения:
    352
    Симпатии:
    338
    А что мешает, поменять в одной из баз кодировку, на нужную?
     
  3. pixelranger

    pixelranger

    Регистр.:
    24 июн 2006
    Сообщения:
    386
    Симпатии:
    117
    Объем базы большой? Если нет, открываешь дамб любым редактором, который может конвертировать текст. Конвертируешь в нужную кодировку, сохраняешь и заливаешь дамб в phpmyadmin, не забуть в самой кодировке поменять cp1251 на utf8, где найдешь.(автозаменой)
     
  4. itpeople

    itpeople

    Регистр.:
    6 дек 2007
    Сообщения:
    546
    Симпатии:
    62
    Поменял ручками значение всех таблиц на utf8, а если что-то добавляется в базу - отображается иероглифами. Такое ощущение, что что-то не то.

    База маленькая. Дамп - это файл *.sql? Каким редактором например?
     
  5. Сергiй

    Сергiй

    Регистр.:
    19 ноя 2006
    Сообщения:
    352
    Симпатии:
    338
    ну если уже с сайта приходит криво, то проблема не только в базе может быть,
    1 создать базу в нужной кодировке
    2 таблицы поправить в нужную кодировку
    3 при конекте к базе (в скрипте) добавить
    PHP:
    mysql_query('SET NAMES "utf8"');
     
    itpeople нравится это.
  6. itpeople

    itpeople

    Регистр.:
    6 дек 2007
    Сообщения:
    546
    Симпатии:
    62
    Я создаю новую базу (у меня cppanel). Затем иду в phpmyadmin и меняю в базе (в опции Operations) collation с 1251 на utf8_general_ci - правильно?
    Получается вот такой запрос
    PHP:
    ALTER DATABASE `base-name` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci
     
  7. Сергiй

    Сергiй

    Регистр.:
    19 ноя 2006
    Сообщения:
    352
    Симпатии:
    338
    да, теперь база в утф, также поменяеш в таблицах, в дампе, и если пропишеш приконекте mysql_query('SET NAMES "utf8"'); то уже никаких (думаю:)) проблем быть не может
     
    itpeople нравится это.
  8. itpeople

    itpeople

    Регистр.:
    6 дек 2007
    Сообщения:
    546
    Симпатии:
    62
    Что то лыжи не едут у меня :)
    Еще раз по порядку объясню. Есть скрипт, страницы которого все в 1251 и база естественно тоже после установки. Понадобилось мне это дело перенести в utf8. Я уже ручками текстовым редактором перегнал страницы в utf8, создал новую базу, поменял в ней кодировку на utf8. Устанавливаю скрипт - на сайте все отображается хорошо - в базе крокозяблы.
    Повторяю процедуру заново, но добавляю в install.php - mysql_query('SET NAMES "utf8"'); Смотрю в базу - все красивенько, захожу на страницу и приехали, иероглифы? в браузере тут же меняю на 1251 и все нормально :eek:. Уже запутался

    Получилось что при добавлении mysql_query('SET NAMES "utf8"'); что-то поламалось и стало отображаться в 1251 кодировке

    Вроде разобрался - не там просто прописал параметр. Впринципе похоже что все отлично, но уже написал разработчику - может он что подскажет.
     
  9. Сергiй

    Сергiй

    Регистр.:
    19 ноя 2006
    Сообщения:
    352
    Симпатии:
    338
    в инстале не поможет, найди в скрипте, где конектится к базе,mysql_connect, под строчками конекта, пропиши
    ЗЫ если по розумному написан скрипт, то в конфиге будет
     
  10. Club-Ua

    Club-Ua Создатель

    Регистр.:
    6 июн 2008
    Сообщения:
    22
    Симпатии:
    0
    Добрый вечер извените что вмешался в тему, но вопрос впринципе похож ... есть бд с кодировкой latin1_swedish_ci ее нужно перегнать в utf8 // может есть какието конверторы или пождскажите как по другому сделать ето? поиском ничего не смог найти. Заранее спасибо
     
Статус темы:
Закрыта.