Как конвертировать кодировку БД

Статус
В этой теме нельзя размещать новые ответы.
подскажу еще один простой способ (проверенный)
сливаете вашу базу данных через phpmyadmin в незжатый .sql
открываете этот файл в замечательном редакторе
Выделяем весь текст, нажимаем Ctrl+X (вырезать)
выставляем нужную кодировку в меню Кодировки
нажимаем Ctrl+V и тест вставляется в нужной кодировке

Осталось только заменить строки DEFAULT CHARSET=*** на нужную кодировку.

Все.
 
есть замечательная штука sypex dumper - урл не помню.
она из одного дампа может в другой кодировке дамп сделать.
 
Попробую разжевать от себя ;) Итак, скачиваешь базу на комп, открываешь её любым редактором, которым можно перекодировать кодировки, например мой любимый Для просмотра ссылки Войди или Зарегистрируйся. Там выбираешь кодировки, кодировать в то что нужно ANSI или UTF. И изменяешь во всех упомянутых "DEFAULT CHARSET=бывшая кодировка" на то что тв накодировал "DEFAULT CHARSET=ANSI или UTF". Сохраняешь файл и импортируешь его в базу.
 
Мой случай.
Я на локалке делал сайт. В phpmyadmin везде, где только можно(кодировки БД, таблиц, сравнения и сопоставления), везде написано UTF8. CMS выводит сайт тоже в UTF8. Все вро де и ничего. Сделал сайт, через dumper 1.0.8 перелил на хостинг(там тоже везде стоит кодировка UTF8), и сайт начал отображатся знаками вопроса. Я посмотрел записи БД через phpmyadmin, они отображаются в виде "КонÑ�ул".
Мне постсоветовали добавить в скрипт CMS после строк соедидения с БД:
mysql_query("SET CHARACTER SET utf8");
mysql_query("SET SESSION collation_connection = 'utf8_general_ci'");
mysql_query("SET NAMES utf8");
.
Теперь старые записи на сайте выглядят точно так же, как в phpmyadmin-е, тоесть "КонÑ�ул"
Зато вновь созданные записи записываются в БД нормальным русским языком(покрайней мере они выдны в phpmyadmin нормально) и на сайте тоже читаемый текст. Причем на локалке и на хостинге новые записи создаются нормально.
Поэтому встала проблема конвертации старых записей, тех что в phpmyadmin видны как "КонÑ�ул". Я не знаю, как называется эта кодировка, но помогите мне превратить "КонÑ�ул" в "Кайтсерфинг" в самом ПХПАДМИНЕ.

По поводу замены DEFAULT CHARSET=*** на нужную кодировку в текстовом редакторе. Открываю свой дамп, там везде DEFAULT CHARSET=utf8 */ /*!40101 COLLATE=utf8_unicode_ci */; , и при этом данные видны как "КонÑ�ул". Пробывал в лоб открывать файл в разных кодировках, но так и не нашел нужную.
 
В DLE очень просто, делаеш бэкап бд через админку и всё.
 
У меня не DLE, а Viartshop. Но не думаю, что это чемто топоможет. ПРосто столкнулся впервые, способы "в лоб" не получаются, в частности и вручную перекодировать в текстовом редакторе, так как я не знаю названия моей кодировки.
 
Самый имхо тупой вариант:
1)
mysqldump --host=HOST --database=DATABASE --user=USER --password=PASSWOR>db.sql
Или через phpmyadmin в export вытянуть таблички.


2) Потом удалить таблицы в бд.

3) В дампе поменять упоминания об одной кодировке на другую. Если дамп большой, редактор может пухнуть. Тут стоит командовать с консоли что-нить в стиле:
perl -e 'while(<>){s/OLDCHARSET/NEWCHARSET/;print;}'<db.sql>newdb.sql
Заодно, убедиться, что сам дамп в нужной кодировке. Дамп можноп ерегнать из одной в другую iconv'ом:
iconv -f utf-8 -t windows-1251< db.sql >newdb.sql
и поменять

4)в phpmyadmin залезть в операции и сменть сравнение на нужное.

5)закинуть дамп обратно через тот же phpmyadmin или с консоли:
mysql --host=HOST --database=DATABASE --user=USER --password=PASSWORD < newdb.sql
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху