paradox39 0 Опубликовано: 27 июля 2008 Рассказать Опубликовано: 27 июля 2008 На старом сайте стояла версия движка 1.3, через directadmin иногда делал бэкап mysql базы. Щас хостинг на котором сайт размещался закрылся, пришлось переезжать на другой. Базу закачал через Sypex Dumper. Все бы ничего, но кодировка нарушилась и за место текста в основном вопросительные знаки. Адрес сайта reaport точка net На сайте Sypex Dumper есть статья про данную проблему. Там написано: Для коррекции кодировки вашей БД нужно выполнить следующие действия: Cохранить БД с помощью нового дампера 1.0.8 (предварительно установив в dumper.php следующие значения, CHARSET = 'auto', RESTORE_CHARSET = 'forced->cp1251'), желательно для подстраховки убедиться, что в дампе нормально сохранены русские символы, после чего восстановить таблицы этим же скриптом из только, что созданного дампа. Теперь у таблиц будет правильная кодировка, и phpmyadmin будет правильно показывать и сортировать русские символы. Но ваши скрипты скорее всего будут показывать вопросительные знаки, так как в них не указывается кодировка соединения cp1251, а используется latin1. Для того чтобы это исправить, нужно во всех ваших php-файлах, где вызывается функция mysql_connect, обычно перед вызовом mysql_select_db добавить следующую строку: mysql_query("/*!40101 SET NAMES 'cp1251' */") or die("Error: " . mysql_error()); В итоге ваши скрипты будут нормально работать как со старыми версиями MySQL, так и с новыми. Кроме того рекомендуется в с помощью phpmyadmin (или другого MySQL клиента) изменить кодировку по умолчанию для вашей БД, чтобы новые таблицы создавались с правильной кодировкой. В pma для этого нужно выбрать БД, зайти в раздел "Операции" и в выпадающем меню "Сравнения" выбрать правильное (соответствующее вашим данным). ----- Но у меня знания в php не очень большие и я не смог найти и понять в каком файле и что именно надо заменить. Еще раз напоминаю версия движка 1.3 Кто может помочь? Готов даже заплатить пару wmz. Цитата Ссылка на сообщение Поделиться на других сайтах
lifestar 18 Опубликовано: 27 июля 2008 Рассказать Опубликовано: 27 июля 2008 в файле dumper.php Цитата Ссылка на сообщение Поделиться на других сайтах
hpk 0 Опубликовано: 27 июля 2008 Рассказать Опубликовано: 27 июля 2008 Только что исправил проблему с кодировкой, смотри третий пункт в статье Цитата Ссылка на сообщение Поделиться на других сайтах
paradox39 0 Опубликовано: 27 июля 2008 Рассказать Опубликовано: 27 июля 2008 Автор в файле dumper.php Нет. Там же написано: Для того чтобы это исправить, нужно во всех ваших php-файлах, где вызывается функция mysql_connect, обычно перед вызовом mysql_select_db добавить следующую строку. Просто сам плохо шарю в пхп и так и не понял что именно заменить надо. И в каком из файлов движка. Только что исправил проблему с кодировкой, смотри третий пункт в статье У меня другая версия, очень старая. V 1.3 Цитата Ссылка на сообщение Поделиться на других сайтах
hpk 0 Опубликовано: 27 июля 2008 Рассказать Опубликовано: 27 июля 2008 engine/inc/mysql.php этот файл есть? Править надо только его. Цитата Ссылка на сообщение Поделиться на других сайтах
lifestar 18 Опубликовано: 28 июля 2008 Рассказать Опубликовано: 28 июля 2008 Но ваши скрипты скорее всего будут показывать вопросительные знаки, так как в них не указывается кодировка соединения cp1251, а используется latin1. Для того чтобы это исправить, нужно во всех ваших php-файлах, где вызывается функция mysql_connect, обычно перед вызовом mysql_select_db добавить следующую строку: В DLE не используется latin1 - не знаю правда как в версии 1.3. Но я бы на твоём месте лучше подумал бы о том, что версию пора бы сменить, учитывая что в те времена довольно часто находили уязвимости DLE Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.