Проблема конвертирования latin1 -> cp1251

Статус
В этой теме нельзя размещать новые ответы.

cbone

Создатель
Регистрация
24 Ноя 2007
Сообщения
28
Реакции
5
Создал на своем localhost БД, оказалось что она стандартно создалась в latin 1. Сделал сайтец на Joomla, и столкнулся с проблемой при переносе на хостинг. Экспортирую через phpMyAdmin, просматриваю, русские поля таблицы кракозяблики, а комментарии нормальные. Сделав дамп через dumper.php, вроде он нормально определил кодировку, и нормально слил дамп. Тупо импортировать обратно через dumper.php на хостинг не вкатило, видимо хостер не хочет работать с latin1. Пробовал конвертировать дамп по схеме, описаной здесь: _http://wiki.iblink.ru/sources/db/mysqlcharsetconversion. В ответ получил знаки вопроса вместо русских символов. В общем не знаю что дальше делать. Как можно переконвертировать latin1->cp1251.
 
делаем дамп БД

mysqldump -h localhost -u dev -p --default-character-set=latin1 database > database.sql

потом юзаем iconv

iconv -f latin1 -t cp1251 database.sql > database.cp1251

если ругнется то добавьте ключ -с

iconv -c -f latin1 -t cp1251 database.sql > database.cp1251

теперь надо поменять в дампе строчки

sed 's/SET NAMES latin1/SET NAMES cp1251/g' < database.cp1251 > fixed.database.cp1251
sed 's/DEFAULT CHARSET=latin1/DEFAULT CHARSET=cp1251/g' < database.cp1251 > fixed.database.cp1251

затем восстанавливаем базу

mysql -u dev -p --default-character-set=cp1251 database < ./fixed.database.cp1251

если поможет то гуд )
 
Если проблема только в конвертации из одной кодировки в другую, то юзай программу TextPipe Pro, она есть на форуме. Она перекодирует из (почти) откуда угодно в (почти) куда угодно.

Для начала лучше взять небольшой кусок текста и проверить, если все ок, то запускать на всю базу.
 
можно и на пхп накорябать, там есть встроенный iconv
 
А может пока не поздно, уйти от хостера который не дает юзать кодировку latin1?
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху