Тема: Перекодировка БД (IPB)
Здравствуйте!
Была поставлена цель перекодировать БД форума IPB 2.3.6
В самой базе таблицы имеют различную кодировку: latin1_swedish_ci, utf8_general_ci, cp1251_general_ci.
Основная текстовая информация лежит в таблицах с кодировкой latin1_swedish_ci.
Перекодировать ВСЮ базу и данные в ней нужно именно в utf8_general_ci.
Я взял БД с виртуального хостинга и перенес на локальный, предварительно создав новую БД в кодировке utf8_general_ci.
Ранее я такого никогда не делал, решил воспользоваться подсказками опытных спецов.
Порекомендовали делать все запросами вида:
ALTER TABLE `таблица` CHANGE `поле` `поле` varchar(255) CHARACTER SET BINARY NOT NULL;
ALTER TABLE `таблица` CHANGE `поле` `поле` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL;
ALTER TABLE `таблица` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
Я пробовал разные способы, слегка все сдвинулось только при таком:
ALTER TABLE `таблица` CHANGE `поле` `поле` varchar(255) CHARACTER SET BINARY NOT NULL;
ALTER TABLE `таблица` CHANGE `поле` `поле` varchar(255) CHARACTER SET cp1251 COLLATE cp1251_general_ci NOT NULL;
ALTER TABLE `таблица` DEFAULT CHARACTER SET cp1251 COLLATE cp1251_general_ci;
Т.е. в начале перевел из latin1_swedish_ci в binary, а затем и в cp1251_general_ci.
Далее делаю запрос:
ALTER TABLE `таблица` CHANGE `поле` `поле` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL;
ALTER TABLE `таблица` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
Т.е. тут я перевожу сразу из cp1251_general_ci в utf8_general_ci
ИТОГ: в БД все нормально отображается, а на форуме все русские буквы как ????????