• Статьи
  • Создание сайта на Joomla
  • Новости Joomla
  • Файлы
  • Документация
курсы по аудитуБюджетная мебель - мебель для ванной комнаты , д/кабины, ванны гидромассажные.

Как конвертировать базу данных Joomla в другую кодировку? PDF Печать E-mail
12.12.2007 11:00
Установлена Joomla 1.0.х
Оказалось что БД стоит на latin1_swedish_ci
Требуется перевести в cp1251_general_ci

Ответ:

Для коррекции кодировки вашей БД нужно выполнить следующие действия:

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 для этого  нужно выбрать БД, зайти в раздел "Операции" и в выпадающем меню "Сравнения" выбрать правильное (соответствующее вашим данным).

Подробнее читайте здесь