Jump to content
Sign in to follow this  
paradox39

Проблема с кодировкой

Recommended Posts

На старом сайте стояла версия движка 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.

Share this post


Link to post
Share on other sites

Только что исправил проблему с кодировкой, смотри третий пункт в статье

Share this post


Link to post
Share on other sites

в файле dumper.php

Нет. Там же написано: Для того чтобы это исправить, нужно во всех ваших php-файлах, где вызывается функция mysql_connect, обычно перед вызовом mysql_select_db добавить следующую строку.

Просто сам плохо шарю в пхп и так и не понял что именно заменить надо. И в каком из файлов движка.

Только что исправил проблему с кодировкой, смотри третий пункт в статье

У меня другая версия, очень старая. V 1.3

Share this post


Link to post
Share on other sites

engine/inc/mysql.php этот файл есть? Править надо только его.

Share this post


Link to post
Share on other sites

Но ваши скрипты скорее всего будут показывать вопросительные знаки, так как в них не указывается кодировка соединения cp1251, а используется latin1. Для того чтобы это исправить, нужно во всех ваших php-файлах, где вызывается функция mysql_connect, обычно перед вызовом mysql_select_db добавить следующую строку:

В DLE не используется latin1 - не знаю правда как в версии 1.3. Но я бы на твоём месте лучше подумал бы о том, что версию пора бы сменить, учитывая что в те времена довольно часто находили уязвимости DLE ;)

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...