Блин... запарился...
Существует ли точный ответ на такой вопрос:
КАК ПРАВИЛЬНО ПЕРЕНЕСТИ БАЗУ ДРУПАЛА?
Уточняю: перепробовал всевозможные варианты вариантов кодировок utf-8
(utf8_bin, utf8_unicode_ci, utf8_general_ci)
Во всех случаях вместо буквы "ш" - квадратик.
Это раз.
Два:
Удаляю базу. Создаю пустую. Кодировки не трогаю(по умолчанию cp1251_general_ci), импортирую дефолтовый дамп друпала.
Импортирую перевод - все нормально.
Делаю Експорт дампа - потом импорт обратно - все... %опа... все русские буквы превратились в *ФІ%?;В*
Три:
Почему друпал импортированный язык держит в базе в утф, а все что добавляешь на сайте - вообще хрен знает в какой кодировке?
Где блин хваленная супер совместимость??
Или я чего недопонимаю... или... даже не знаю что сказать...
Может кто обьяснит?
Комментарии
добавлю:
MySQL 4.1.8
MySQL charset: UTF-8 Unicode (utf8)
Расскажи, как ты делаешь импорт и экспорт дампа...
А.. да .. есть еще такая штука...
В includes/database.mysql.inc в функцию
function db_connect($url) {
перед строкой return $connection;
добавь строку
mysql_query("set charset utf8");
--
USU-Lug http://usu-lug.org.ru
[b]Спасибо тебе, о человек! :)[/b]
Вот так mysql_query("set charset utf8") заработало...
Блин... ну буржуев мне наверное никогда не понять... что же им влом было эту строчку дописать....
Либо глобально в mysqld должен быть запущен с опциями работы в utf8. В /etc/mysql/my.cnf д.быть прописано:
character-set-server=utf8
default-character-set=utf8
Но поскольку на хостингах mysql не всегда по умолчанию под utf8 работает, то значит надо указывать кодировку явно в скриптах. Вообще, если я правильно понимаю, хуже от этого не будет и в друпале такая строчка бы не помешала. Не знаю, почему её не включили.
--
Axel,
www.axel.drupal.ru | darcs-репозиторий моих разработок
В блокноте windows есть Юникод и utf-8 - штуки разные. Можно и win-1251, а что такое cp1251_general_ci - то же самое или нет?
Дамп делается:
#mysqldump -u пользователь_хозяин -p пароль названиебазы > дампбазы.sql
Никаких проблем.
Этот комментарий был перемещен.