Сделать стартовой   |   Добавить в избранное
       
НАВИГАЦИЯ
ПО САЙТУ
•   Релизы
•   Пресс релизы
•   Дополнительные модули
•   Обнаруженные уязвимости

•   Системные требования
•   Полезные Советы
•   Возможности DataLife Engine

•   Видеоинструкция по созданию
    сайта и установке скрипта
•   Уроки по созданию шаблонов
•   Мультмедийные возможности
    скрипта

•   Лицензионное соглашение
•   Информация о покупке
•   Техническая поддержка
•   Онлайн документация
•   FAQ (Частые вопросы)

•   Обратная связь
•   Форум технической поддержки
•   RSS новости

•   Написать пожелание
    для новых версий скрипта
ОПРОС
НА САЙТЕ
Совершаете ли вы покупки в интернет?

Да охотно, если это выгодно
Только когда нет другого выбора
Нет, я не доверяю интернету
Нет, просто не понимаю как это сделать

КАЛЕНДАРЬ
«    Май 2013    »
ПнВтСрЧтПтСбВс
 12345
6789101112
13141516171819
20212223242526
2728293031 
ПОПУЛЯРНЫЕ
СТАТЬИ
АРХИВ
НОВОСТЕЙ
Май 2013 (1)
Апрель 2013 (1)
Февраль 2013 (1)
Январь 2013 (4)
Ноябрь 2012 (2)
Сентябрь 2012 (3)
НАШИ
ПАРТНЁРЫ
Шаблоны для DLE
DLE-Украина
МЫ
РАБОТАЕМ С
Аттестованный участник Webmoney
Мы принимаем Яндекс.Деньги
Главная страница » Советы » Конвертирование базы данных DLE из utf-8 в windows-1251 Форум технической поддержки


Конвертирование базы данных DLE из utf-8 в windows-1251
Раздел: Советы
 
О том, как перевести сайт и базу данных из кодировки windows-1251 в кодировку utf-8, уже рассказывалось неоднократно. Это можно сделать средствами самой DLE. Данная статья предназначена для тех, кто хочет перевести сайт из кодировки utf-8 в кодировку windows--1251. Cделать это сравнительно легко в "домашних" условиях без обращений к техподдержке хостинга или без самостоятельных дополнительных манипуляций на своем сервере. Надеюсь, она поможет тем, кто по каким-то причинам разочаровался в кодировке utf-8 и решил вернуться к windows-1251.

Для начала вам нужно сделать дамп базы данных вашего сайта (можно, и даже лучше, средствами самого движка через админпанель сайта), которые работают в кодировке utf-8, и скачать этот дамп себе на локальный компьютер.

Перед тем как начать заниматься базой данных, вам нужно будет удалить файлы дистрибутива старого сайта в кодировке utf-8 и проинсталлировать по новой дистрибутив DLE в кодировке windows-1251. От старого дистрибутива вам нужно оставить на хостинге (НЕ УДАЛЯТЬ!!!) папку uploads и все файлы в ней. Также, скачайте к себе на компьютер папку с вашим рабочим шаблоном и папку engine/data со всеми файлами конфигурации сайта - они вам понадобятся, чтобы не вводить все настройки заново после установки DLE в кодировке windows-1251.

Базу данных на хостинге можно оставить прежнюю, но из неё нужно будет удалить все таблицы, оставив её полностью пустой. Затем через phpmyadmin вам будет нужно на вкладке "Операции" выставить "Сравнение" cp1251_general_ci для этой базы данных.
Конвертирование базы данных DLE из utf-8 в windows-1251

Для самого сайта, чтобы не было проблем с отображением кодировки в браузерах, в вашей панели управления на хостинге нужно будет выставить для вашего домена кодировку windows-1251 перед началом работ. Теперь можно проинсталлировать DLE в кодировке windows-1251 в вашу пустую базу данных. При установке укажите префикс таблиц, все логины и пароли к админке сайта и базе данных точно такими же, какие они у вас были до этого в прежней базе данных и сайте на utf-8. Это поможет вам избежать проблем и непонятных вам ситуаций в дальнейшем.

Теперь займемся самой базой данных...
Распакуем архив с базой данных архиватором, например WinRAR. У вас получится файл с расширением .sql. Откроем его с помощью бесплатного текстового редактора Notepad++ (он поддерживает достаточно большие файлы, если кто-то беспокоится из-за размера своего дампа базы данных). В правом нижнем углу окна Notepad++ будет видна кодировка "UNIX ANSI as UTF-8".
Конвертирование базы данных DLE из utf-8 в windows-1251

Конвертировать базу данных будем в два этапа.
- Первый этап
Для начала нам нужно сменить название кодировки с utf-8 на windows-1251 по всей базе данных для всех таблиц. Для этого вызываем диалог поиска и замены в Notepad++ и будем менять текст в базе данных с utf8 на cp1251, как на скриншоте.
Конвертирование базы данных DLE из utf-8 в windows-1251

Нажимаем "Заменить всё" и после нажимаем "Сохранить изменения" (иконка дискеты). Для DLE 9.5 на данный момент таблиц должно быть 35 и столько же должно быть произведено замен (см. скриншот).
Конвертирование базы данных DLE из utf-8 в windows-1251

- Второй этап
Теперь нам нужно конвертировать саму базу данных в windows-1251. Чтобы сохранить кириллицу кириллицей, без всяких крякозяблов, делаем следующее...
Нажимаем кнопку "Кодировка" в меню Notepad++ и затем в выпадающем меню выбираем "Преобразовать в ANSI".
Конвертирование базы данных DLE из utf-8 в windows-1251

Ждем пока Notepad++ закончит эту операцию (на больших базах это может занять время) и после этого нажимаем снова "Сохранить изменения" (иконка дискеты).
Если вы сделали все именно так, то кириллица в вашей базе данных сохранилась без изменений, а в правом нижнем углу окна Notepad++ будет видна кодировка "UNIX ANSI".
Конвертирование базы данных DLE из utf-8 в windows-1251

Ваша новая база данных в кодировке windows-1251 готова. Теперь вы можете упаковать её в zip архив, чтобы уберечь от возможных повреждений при загрузке на хостинг, и загрузить в папку backup вашего свежеустановленного сайта, где уже распакуете этот архив через панель управления хостингом (ISPManager или аналогичные). После этого вы сможете восстановить базу данных стандартными средствами движка через админпанель сайта в разделе "Управление базой данных". После восстановления базы данных не забудьте в разделе "Категории" нажать кнопку "Отсортировать категории". Вот, собственно, и все премудрости, теперь у вас и сайт, и база данных в кодировке windows-1251.
Если вы прислушались к моему совету при новой установке DLE в кодировке windows-1251 сохранить префиксы таблиц, а также логины и пароли к базе данных и админке сайта прежними, то вы без проблем войдете на сайт после восстановления нашей измененной базы данных.

Для того, чтобы вам вернуть все настройки (не зря я говорил о необходимости сохранить все файлы из папки engine/data), откройте сохраненный файл config.php, найдите строчку
'charset' => "utf-8",

и замените её на
'charset' => "windows-1251",

и затем нажимаем "Сохранить изменения" (иконка дискеты). Чтобы перевести этот файл с настройками из кодировки utf-8 в windows-1251 проделываем все то же самое, как и с базой данных, и после снова нажимаем "Сохранить изменения" (иконка дискеты). В правом нижнем углу окна Notepad++ будет видна кодировка "UNIX ANSI". Можете загрузить теперь этот файл config.php к себе на сайт в папку data - все настройки и кодировка будут сохранены. Если остальные файлы из старой папки data у вас тоже изменялись на хостинге, то проделываете с каждым нужным вам из них все те же действия, а после загружаете к себе на сайт в папку data.

С шаблоном нужно сделать то же самое - все файлы стилей .css и шаблонов .tpl нужно перевести в кодировку windows-1251 при помощи Notepad++ по тому же принципу, а после загрузить к себе на сайт в папку с шаблонами. Не забудьте выставить права на файлы в соответствии с документацией к DLE.

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


  • 68
 (Голосов: 13
 
#1 написал: dzhabrailoff (12 марта 2012 12:57)    
 




Группа: Посетители
Публикаций: 0
Комментариев: 13
Статус: Пользователь offline
Тысяча просмотров, и хоть кто-нибудь бы спасибо сказал.
СПАСИБО АВТОРУ!

 
 
#2 написал: ower_xz (12 марта 2012 15:45)    
 




Группа: Клиенты
Публикаций: 2
Комментариев: 13
Статус: Пользователь offline
Цитата: dzhabrailoff
Тысяча просмотров, и хоть кто-нибудь бы спасибо сказал.
СПАСИБО АВТОРУ!

dzhabrailoff, спасибо за "спасибо". wink Хоть один оценил... smile

 
 
#3 написал: pushnov (14 марта 2012 01:38)    
 




Группа: Посетители
Публикаций: 0
Комментариев: 1
Статус: Пользователь offline
Спасибо.

 
 
#4 написал: Pentaru (14 марта 2012 23:20)    
 




Группа: Клиенты
Публикаций: 0
Комментариев: 21
Статус: Пользователь offline
Спасибо)

 
 
#5 написал: DeeMon (16 марта 2012 11:11)    
 




Группа: Клиенты
Публикаций: 0
Комментариев: 47
Статус: Пользователь offline
Я обычно скриптом конвертирую, его использовал ещё для IPB, а тут мороки чёт много.

 
 
#6 написал: ower_xz (16 марта 2012 16:12)    
 




Группа: Клиенты
Публикаций: 2
Комментариев: 13
Статус: Пользователь offline
Цитата: DeeMon
Я обычно скриптом конвертирую, его использовал ещё для IPB, а тут мороки чёт много.

Те, кто продвинутые пользователи, смогут для себя решить вопрос по конвертации базы, а кто не особо силен, тому эта статья как раз подойдет.

 
 
#7 написал: Assassin674 (20 марта 2012 01:46)    
 




Группа: Клиенты
Публикаций: 0
Комментариев: 12
Статус: Пользователь offline
Спасибо smile

 
 
#8 написал: ak-ufa (23 марта 2012 18:06)    
 




Группа: Посетители
Публикаций: 0
Комментариев: 1
Статус: Пользователь offline
Спасибо, большое!!! Статья для меня была очень полезной!

 
 
#9 написал: razer85 (4 февраля 2013 01:47)    
 




Группа: Клиенты
Публикаций: 0
Комментариев: 30
Статус: Пользователь offline
Celsoft

А где рассказали конвертирование с 1251 на utf-8? не могу найти тему.

 
 
Информация
 
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.
 
 
 
Главная страница   •   Релизы   •   Модули   •   Форум поддержки   •   Покупка   •   Обратная связь

© 2004 - 2013 SoftNews Media Group. Сайт работает под управлением DataLife Engine.