Я как всегда всё сделал через одно место и сначала развернул Друпал на хостинге, потестил, загнал в него пару статей, а теперь понял, что надо иметь локальную базу для тестов. Поставил Денвер. Выгрузил базу с хостинга и попробовал развернуть её локально.
И вот тут столкнулся с проблемой. Какую бы кодировку я ни выбрал при загрузке базы (начал с utf8, соответственно) - всё равно получаю одни знаки вопроса вместо текста статей. Что делать - не знаю. Хелп!
Комментарии
1. Проверить дефолтную кодировку mysql на хостинге и локальном сервере
2. Перед экспортом базы проверить и починить таблицы
3. Выключить кэш в настройках друпала и очистить таблицу кэша
4. Попробовать поотключать модули
5. Если ничего не помогло, копать дальше. У меня была такая трабла при апдейте на версию 4.6.9. А при апгрейде на 4.7.3 все нормально. До причин пока не докопался.
так в Денвере по умолчанию в базе стоит cp1251, а на хостингах зарубежных особенно или utf8 или latin... я думаю сначала надо попробовать развернуть всё на хостинге, а на локалхосте менять значения приёма-вывода данных и никаких проблем не будет, потому что значения по умолчанию на хостинге вам никто изменить не даст...
тем более, не забывайте, что теперь (после MySQL 4 с чем-то версии) кодировка не имеет значения, данные хранятся в чём угодно, а выдаются в той кодировке, которая нужна скриптам... для примера, почитайте:
http://www.linux.by/wiki/index.php/FAQ_PHP_MySQL_charset
http://drupal.org/node/64355
суть в том, что у базы данных есть кодировка по умолчанию, кодировка вывода, кодировка ввода и кодировки сравнения... сделано это для того, чтобы хранить данные можно было в разных кодировках в одной базе данных, а передовать эти данные в другие кодировки другим скриптам...
Ну всё, до чего можно было добраться в Денвере не специалисту я выставил в соответствии с хостингом. И не помогавет. Где что ещё настроить можно?
Уж не знаю, где там кодировка значения не имеет, но получающиеся ???? ??????? ?? - явно имеют проблемы с кодировкой...
На хостинге по дефолту utf8.
Drupal, Denwer, phpMyAdmin и кодировки cp1251, utf8
выполнил настройки в Денвере в соответствии с http://firsthand.ru/node/9
Не помогло! Всё равно знаки вопроса.
есть ещё какие-нибудь идеи как на локалке развернуть базу бэкапа??? реально надо...
может вам использовать не Денвер? Есть другие системы (западные) "всё в одном флаконе", там по идее, должна быть кодировка utf8...
Ещё одна возможность для вас, это хранить всё в cp1251, три модуля работать не будут (drupal, search и agregate), но вместо этого можно будет иметь локальный сайт на Денвере... потому что на хостинге можно всё настроить как я указал выше (две таблицы в utf8)...
На Денвере тоже можно хранить данные в utf8
---
---
All content management systems suck, Drupal just happens to suck less. -- Boris Mann at DrupalCON Amsterdam, August 2005.
Natalie - да я вот уже по инструкции изменил настройки Денвера под utf8 - не помогло. Потому и спрашиваю что ещё делать
B.X - а не помните название какой-нибудь из этих систем? а то я порылся в инете с запросом "аналог Denwer utf8" - но ничего конкретного найти не смог. Или хотя бы как эти сборники "всё в одном" в целом могут зваться на английском?
Debian (свежий дистрибутив) спасёт отца русской демократии. Если охото работать одновременно с мастдаем, WMware тебе в помощь.
Shelendor, вы откройте файл с бэкапом каким-ниубудь текстовым редакотором, который понимает utf8 и проконтролируйте наличие там русских букв...
.
Это я к тому, что может быть русских буковок нет в бэкапе. При создании бэкапа тоже кодировка вывода указывается mysqldump) ... м.б. ошибка именно там ?
Nick - проверил, в бэкапе русские буквы в нормальном виде. Поиски причин продолжаются...
Да, кстати, поставил xampp - западный аналог Денвера. Вроде как в нём с utf8 проблем нет никаких, вот только бэкап всё равно не разворачивается
хм, странно... может всё-таки попробовать не переносить Друпал с хостинга на локалхост, а наоборот, сначала на локалхосте всё сделать, а потом перенести?
в крайнем случае, действительно, убунту разверните в вмваре...
B.X - да просто дело в том, что на хостинге я уже наполнил сайт... не так много, но всё же выложил информацию... Поэтому если на локалхосте, а потом перенести - то это с нуля всё... Видимо, действительно придётся разворачивать убунту и пытаться разобраться с линуксом... прошлая попытка около года назад прошла неудачно, с тех пор к линуксу не прикасался
В деле освоения линуха могу помочь, благо зада с Debian архипростая.
Тут вся фишка в том, чтоб приучить себя в TUI.
Если что 316490920
Попробуйте слить базу при помощи экспорта в PhpMyAdmin'е (обычно хостеры его дают), и там при экспорте выберите режим совместимости с Mysql 3.23.
Затем полученыый файл импортируйте в базу на localhost'е.
В бэкапе русские буквы в нормальном виде или в utf8?
По-идее должны быть в utf8
хм... в общем, проблема решилась. почему-то при разворачивании дампа шло 2 попытки создать базу и неправильная перекодировка. решилось вырезанием вручную команды о создании новой бд и команды о кодировке в каждой таблице.
Возник слудующий вопрос - пока перехожу по разделам локальной версии сайта - всё нормально. но если захожу на локальной версии на http://drupal/user и авторизуюсь там - то попадаю на онлайновую версию, которая www.мой_сайт.ru
где что надо поправить? подскажите, пожалуйста!
В "sites\default\settings.php" "Base URL" поправлен?
Dan - спасибо!!!! За разборками с кодировкой совсем забыл об этом...
У меня тоже такая штука приключилась. Импортирую дамп на денвер и как ни крути кракозябры.
Первое что бросилось в глаза - в папке usr\local\mysql\share\charsets нет utf кодировок и несмотря на то что я правил my.cnf если вызвать mysql -? там все равно указана дефолтная кодировка latin1
Вобщем я расстроился решил помедитировать и мне снизошло откровение.
если вставить в заголовок дампа следующие строки, то все будет ок (сразу говорю что не знаю что значат эти мантры)
<?php
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
?>
и как не странно помогло
Версии mysql на хостинге и в дэнвере одинаковые? Между 4.0 и 4.1 значительные отличия в работе с кодировками и экспорт/импорт надо делать с учетом этого.
--
Администратор сайта «Drupal — Россия»
на вопросы по Drupal отвечаю только на форумах, не пишите в почту и приватом!
Точно на серваке 5 денвер - 4.1