dump в utf8 вставляет в базу пустые строки

Irishka

Новичок
dump в utf8 вставляет в базу пустые строки

Привет! Кто-нибудь был в такой ситуации: есть дамп, в котором данные преобразованы в utf8, при импорте в базу данных из этого дампа русские записи вставляются пустыми строками?
Все это происходит с помощью батника:


mysqldump --user=* --password=* --default-character-set=latin1 --skip-set-charset compacs> dump.sql

sed -r "s/latin1/utf8/g" dump.sql > dump_utf.sql

mysql --user=* --password=* --execute="CREATE DATABASE compacs_utf CHARACTER SET utf8 COLLATE utf8_general_ci;"

mysql --user=* --password=* --default-character-set=utf8 compacs_utf < dump_utf.sql


При чем, если использовать дамп dump_utf.sql для импорта в phpmyadmin, получается то же самое.

БД изначально была в latin1_swedish_ci. Потребовалось перевести ее в utf8_general_ci для импортирования данных при миграции joomla1.0 -> joomla 1.5

-~{}~ 12.07.10 12:23:

Внезапно проблема решилась :)
В начало файла dump_utf.sql надо было почему-то добавить set names 'cp1251';
 

Irishka

Новичок
Ну да, в первом файле latin1, в преобразованном - utf8.
А что делать, если база в одной кодировке, данные в другой, а надо преобразовать в третью %)
 

zerkms

TDD infected
Команда форума
Irishka
ну вообще-то достаточно лишь поменять имена кодировок возле таблиц/полей. сами данные не обязательно перекодировать вручную в дампе.
 

Irishka

Новичок
Как оказалось, недостаточно... Кракозябры как были, так и вставлялись, а того еще хуже - вставлялись пустые строки.
 

zerkms

TDD infected
Команда форума
Irishka
значит данные уже были в неправильной кодировке
 

vovanium

Новичок
Тогда можно поправить дампером 2.
Первым делом исправить кодировку таблиц с latin1 на cp1251. Для этого:
1. сделать дамп с кодировкой авто.
2. восстановить во временную базу выбрав при восстановлении кодировку cp1251 и опцию Коррекция кодировки.

После чего кодировка таблиц будет соответствовать кодировке данных.
Потом преобразование в utf8:
1. сделать дамп из временной базы выбрав кодировку utf8.
2. восстановить базу с кодировкой utf8 и опцией Коррекция кодировки
 

Irishka

Новичок
Ага, вот столько с этим пропарилась, перекодировала, импортировала, а в итоге - сайт сикось-накось, где русские символы, где вопросики, фиг разберешься....
Вот стоит ли это все того, чтоб перейти с джумлы 1.0 на 1.5, если даже после импорта базы все криво...
А ведь там еще делать и делать... Стоит ли мигрировать или проще с нуля сайт писать? Как кто думает?
 

vovanium

Новичок
Irishka
Ну это всё как бы от недостатка опыта, достаточно просто настроить всё правильно и в дальнейшем проблем не будет.
 
Сверху