Приветствую, друзья!
Уже сломал голову. Может кто подскажет, всё ли правильно делаю.
Не зная, что для Друпала желательно создавать БД в utf-8, сделал сайт на хостинге, где по умолчанию создавались базы в кодировке cp1251. Но хотя база создалась в cp1251, сами таблицы созданы (видимо самим Друпалом) в utf-8 (согласно phpmyadmin). Переезжая на другой хостинг, узнал, что нужно все-таки utf-8. Создал на новом хосте вручную базу в utf-8, проинсталлировал свой сайт и с помощью Backup & Migrate восстановил базу.
После этой операции вроде всё работает, как раньше, никаких кракозябров на страницах не наблюдаю. Подозреваю, что это возможно из-за того, что сами таблицы как были в utf-8 так и остались, хотя сама база стала из cp1251 в utf-8.
Как думаете, всё правильно сделал? Или лучше не рисковать и создать базу в cp1251, как было раньше во избежание возможных глюков? Они могут всплыть? Или быть может как-то более правильно проконвертировать базу в utf-8? На новом хосте вообще по умолчанию создаются базы в кодировке latin1.
Комментарии
да
нет
Приветствую, Владимир. Коротко и ясно. А можешь сказать, почему так? Уже был подобный опыт и всё прошло без проблем после пересоздания базы в utf-8?
Друпал видимо сильно не переживает, если изменить общую кодировку базы, потому что сами таблицы всегда в utf-8. Показывает даже при смене общей кодировке на latin1.
Общая кодировка БД - это всего лишь умолчания в чем создавать новые таблицы и какую кодировку назначать соединениям без указания оной. Друпал сейчас принудительно делает таблицы и устанавливает соединения в UTF-8. Так что подобного плана проблемы он взял на себя.
Кстати, мне встречалась ситуация когда половина таблиц друпала таки были в cp1251 и ничего, все работало. Но вот когда ребята добавили японский язык на сайт, тут и началась йобля с пляской. Т.е., когда мускуль на лету хирагану-катакану перекодировал из utf8 в cp1251 в БД попадали вопросики. А в утээфные таблицы - кошерные иероглифы. На момент моего прихода сайт выглядел просто феерично - англицкие буквы вперемешку с вопросиками и обломками иероглифов; поползший дизайн - некорректные концы строк съедали теги. А одмин сайта (дизайнер по должности) разбивал головой вторую клавиатуру в поисках решения.
Вот это хорошие и полезные новости! Я просто в каком-то из топиков читал какие-то ужасы, что для перевода базы надо лезть в код самой базы, и не только менять вручную кодировку через текстовый редактор, а еще и заменять названия кодировок. Наверное, это для другого случая.
Очень живо представляю, как это было. Так ярко и весело, что кино можно снять )))
Валентин, спасибо за ценную инфу!
Мне приходилось делать многоязычный сайт в то время, когда этого не было, а utf8 еще был в состоянии личинки. Вот это был адов писец. Четыре кодировки в одной таблице. Счас об этом можно только воспоминания писать, вроде как о компьютерах с перфокартами. А всего-то 7 лет прошло.
Ну надеюсь для этого случая и по этому поводу не придется лезть в мануалы. Я итак в них на drupal.org просиживаю безвылазно.
Даа, Валентин, ваши тексты читать и смешно и ностальгично. Опыт у вас бесценный.
Сейчас задумалась. У меня друпал стоит на двух сайтах у разных хостеров. У одного по умолчанию базы в cp1251. Проблем не было - друпал с самого начала создает таблицы в нужной ему кодировке.
Вторая база была перенесена с локала, где тоже cp1251, на хостинг с UTF-8 - тоже проблем не было.
Вот как-то с друпалом даже не заморочивалась. А лет 5-6 назад были, например, большие проблемы с переносом/кодировкой с texpattern-ом - там кодировка некоторых таблиц при переносе менялась на дефаултную кодировку базы.
Я, я на заре своей юности работала с перфокартами! Первая моя работа сразу после школы была перфоратором в вычислительном центре. Было и два (!) персональных компьютера, но меня к ним подпустили аж через три месяца
/* и не подумайте, что мне уже в обед сто лет */
Ха. В госучереждениях, особенно медицина, образование и прочая безденежная социалка, особенно в провинции, вроде моей, до сих пор по разным углам трудолюбиво гудят такие ископаемые монстрики, что просто диву даёшся, как у них еще тараканы процессор не сожрали.
По теме, ничего страшного в смене кодировки быть не должно, если движок поддерживает нужную. Потому как через SET NAMES инициируется соединение с базой в требуемой.
А у меня ещё валяются где-то перфокарты с красивыми прямоугольными дырочками Бумага добрая, очень плотная, при малой толщине. Пользовал раньше при намотке всяких катушенций-индуктивностей.
[OFF]
Да, да - именно госучреждение было :), только не в провинции, а в республиканской столице - ВЦ Статистики. А через год я перешла наработу в ВЦ Министерства здравоохранения - так там чувствовала себя как космонавт на орбитальной станции - целых 3 (!) персональных компьютера и никаких перфокарт-табуляторов. И самое интересное, что там я была на должности "лаборант" ))
У меня их было видимо-невидимо - всех цветов радуги. И без дырочек - ну не буду же я брак выносить )) И еще, наверное, парочка где-то осталась - уж больно бумага у них качественная.
[/OFF]
+1 ))
Поправлюсь, кстати. Личинкой тогда был весь Unicode. UTF-8 это всего лишь его ASCII-разновидность.
Золотое правило.
Если всё работает-лучше ничего не трогай.
Друпал всё-таки продуманная штука.
Соглашусь. В общем решил оставить всё, как сделал согласно первого сообщения топика - конверт общей базы из cp1251 в utf8. Поживем - увидим, что будет.
Спасибо, коллеги, что отозвались и подсказали!
Ностальгии этой темой пробудили - на пару голливудских драм хватит ))