XiNoID 0 Опубликовано: 19 апреля 2009 Рассказать Опубликовано: 19 апреля 2009 (изменено) Здравствуйте! Замучался со следующей проблемой - нужно переконвертировать базу данных с кодировкой utf8_bin в cp1251_general_ci. Я попробовал следующие способы: ALTER TABLE `dle_post` CHANGE `autor` TEXT CHARACTER SET cp1251 COLLATE cp1251_general_ci NOT NULL проходит нормально, но в итоге вместо русских символов - ????????? нашел способ через mysqldump: mysqldump -u user -ppassword --default-character-set=utf8 database table > table.sql mysql -uuser -ppassword --default-character-set=cp1251 database < table.sql [/codebox]это вообще безрезультатно - как было в utf8 так и осталось utf8 был еще способ через mysqldump + iconv: [codebox]mysqldump -uuser -ppassword --default-character-set=utf8 -n -K --skip-set-charset \ --skip-create-options --skip-extended-insert --compatible=mysql40 --max_allowed_packet=64K dbname > latin_dump.sql iconv -f UTF-8 -t cp1251//TRANSLIT latin_dump.sql > utf8_dump.sql mysql --max_allowed_packet=1M -uuser -ppassword \ --default-character-set=cp1251 database_utf8 < utf8_dump.sql Конвертация прошла , но абракадабра вместо русского - Aeaenae? нашел еще способ...конвертация с помощью IE открыл дамп в utf8 сохранил в cp1251, импортировал в мускуль...тоже фигня на выходе: &#_210;&#_222;&#_205;&#_200;&#_205;&#_195; форум преобразует эти символы...то что лежит в базе - без подстрочий и слитно... замучался совсем....как же сконвертировать из utf8_bin в cp1251_general_ci ? удалите пожайлуста этот дубликат, он случайно создался.... Изменено 19 апреля 2009 пользователем Skald Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 082 Опубликовано: 19 апреля 2009 Рассказать Опубликовано: 19 апреля 2009 делаете дамп БД при помощи DLE, в файле бекапа потом меняете utf8_bin на cp1251_general_ci и восстанавливаете бекап. Все. Цитата Ссылка на сообщение Поделиться на других сайтах
IT-Security 33 Опубликовано: 19 апреля 2009 Рассказать Опубликовано: 19 апреля 2009 (изменено) Обратитесь - напишу конвертёр. Там мало просто сменить кодировку...Там нужно создать таблицы с такой же структурой, но другой кодировкой и с помощью скрипта прогонять через iconv и загонять в новую таблицу p.s. Можно и как Владимир посоветовал. Изменено 19 апреля 2009 пользователем IT-Security Цитата Ссылка на сообщение Поделиться на других сайтах
XiNoID 0 Опубликовано: 19 апреля 2009 Рассказать Опубликовано: 19 апреля 2009 (изменено) Автор Сделал, как посоветовал celsoft, заменил все utf8_bin на cp1251_general_ci...при импорте(импорт идет на новый чистый дле(6.7) на этом же сервере, расположен в другой папке, использует другую бд) получиил вывод: Установлена кодировка соединения `cp1251`. 2009.04.19 19:07:13 Возникла ошибка! Неправильный запрос. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '9, 'games', 'Èãðû', ' \r\n также попробывал следующее: mysqldump -u user-ppass --default-character-set=utf8 portal dle_post > dle_post.sql заменил везде utf8_bin на cp1251_general_ci заменил utf8 на cp1251 iconv -f UTF-8 -t windows-1251//TRANSLIT dle_post.sql > dle_post_conv.sql mysql --max_allowed_packet=1M -u user -ppass --default-character-set=cp1251 newportalbase < dle_post_conv.sql вот что в базе - Àëåêñåè÷ и нифига не работает! почему?! Изменено 19 апреля 2009 пользователем Skald Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 082 Опубликовано: 19 апреля 2009 Рассказать Опубликовано: 19 апреля 2009 Skald, А в самом файле бекака у вас все нормально, на русском языке? Если да пересохраните файл в обыкновенном ASCII формате Цитата Ссылка на сообщение Поделиться на других сайтах
XiNoID 0 Опубликовано: 19 апреля 2009 Рассказать Опубликовано: 19 апреля 2009 Автор Гхм, в самом файле бекапа на какой стадии? сразу после дампа? Ага..сразу после дампа русские буквы уже такие - ãîðîäîê À... хотя импортируется нормально.... Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 082 Опубликовано: 19 апреля 2009 Рассказать Опубликовано: 19 апреля 2009 Skald, кодировка значит установлена неверно у БД, стоит одна кодировка, отдает в другой, поэтому и сконвертировать вы не можете нормально. Цитата Ссылка на сообщение Поделиться на других сайтах
XiNoID 0 Опубликовано: 19 апреля 2009 Рассказать Опубликовано: 19 апреля 2009 Автор ага, уже что то проясняется пхп майадмин вот что пишет - MySQL-кодировка: UTF-8 Unicode (utf8) Сопоставление соединения с MySQL: MySQL-кодировка: UTF-8 Unicode (utf8) Сопоставление соединения с MySQL: Сравнение utf8_unicode_ci а у бд, с которой хочу сдампить в cp1251_general_ci - portal сравнение utf8_bin Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.