Что будет, если базу данных перенести из cp1251 в utf8?

Главные вкладки

Аватар пользователя mrhuge mrhuge 11 ноября 2011 в 2:37

Приветствую, друзья!

Уже сломал голову. Может кто подскажет, всё ли правильно делаю.

Не зная, что для Друпала желательно создавать БД в utf-8, сделал сайт на хостинге, где по умолчанию создавались базы в кодировке cp1251. Но хотя база создалась в cp1251, сами таблицы созданы (видимо самим Друпалом) в utf-8 (согласно phpmyadmin). Переезжая на другой хостинг, узнал, что нужно все-таки utf-8. Создал на новом хосте вручную базу в utf-8, проинсталлировал свой сайт и с помощью Backup & Migrate восстановил базу.

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

Как думаете, всё правильно сделал? Или лучше не рисковать и создать базу в cp1251, как было раньше во избежание возможных глюков? Они могут всплыть? Или быть может как-то более правильно проконвертировать базу в utf-8? На новом хосте вообще по умолчанию создаются базы в кодировке latin1.

Комментарии

Аватар пользователя v1adimir@drupal.org v1adimir@drupal.org 11 ноября 2011 в 3:35

"mrhuge" wrote:
Как думаете, всё правильно сделал?

да
"mrhuge" wrote:
Или лучше не рисковать и создать базу в cp1251, как было раньше во избежание возможных глюков?

нет

Аватар пользователя mrhuge mrhuge 11 ноября 2011 в 3:39

"<a href="mailto:v1adimir@drupal.org">v1adimir@drupal.org</a>" wrote:
да

Приветствую, Владимир. Коротко и ясно. А можешь сказать, почему так? Уже был подобный опыт и всё прошло без проблем после пересоздания базы в utf-8?

Аватар пользователя mrhuge mrhuge 11 ноября 2011 в 3:47

Друпал видимо сильно не переживает, если изменить общую кодировку базы, потому что сами таблицы всегда в utf-8. Показывает даже при смене общей кодировке на latin1.

Аватар пользователя direqtor direqtor 11 ноября 2011 в 5:44

Общая кодировка БД - это всего лишь умолчания в чем создавать новые таблицы и какую кодировку назначать соединениям без указания оной. Друпал сейчас принудительно делает таблицы и устанавливает соединения в UTF-8. Так что подобного плана проблемы он взял на себя.

Кстати, мне встречалась ситуация когда половина таблиц друпала таки были в cp1251 и ничего, все работало. Но вот когда ребята добавили японский язык на сайт, тут и началась йобля с пляской. Т.е., когда мускуль на лету хирагану-катакану перекодировал из utf8 в cp1251 в БД попадали вопросики. А в утээфные таблицы - кошерные иероглифы. На момент моего прихода сайт выглядел просто феерично - англицкие буквы вперемешку с вопросиками и обломками иероглифов; поползший дизайн - некорректные концы строк съедали теги. А одмин сайта (дизайнер по должности) разбивал головой вторую клавиатуру в поисках решения.

Аватар пользователя mrhuge mrhuge 11 ноября 2011 в 6:06

"direqtor" wrote:
Общая кодировка БД - это всего лишь умолчания в чем создавать новые таблицы и какую кодировку назначать соединениям без указания оной. Друпал сейчас принудительно делает таблицы и устанавливает соединения в UTF-8. Так что подобного плана проблемы он взял на себя.

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

"direqtor" wrote:
На момент моего прихода сайт выглядел просто феерично - англицкие буквы вперемешку с вопросиками и обломками иероглифов; поползший дизайн - некорректные концы строк съедали теги. А одмин сайта (дизайнер по должности) разбивал головой вторую клавиатуру в поисках решения.

Очень живо представляю, как это было. Так ярко и весело, что кино можно снять )))

Валентин, спасибо за ценную инфу!

Аватар пользователя direqtor direqtor 11 ноября 2011 в 6:23

"mrhuge" wrote:
Я просто в каком-то из топиков читал какие-то ужасы, что для перевода базы надо лезть в код самой базы, и не только менять вручную кодировку через текстовый редактор, а еще и заменять названия кодировок.
Ужасы во введении кодировок в мускуль видят только те отсталые, кто до сих пор не счел за труд въехать в мануалы. Т.е. зачем и кому это нужно.

Мне приходилось делать многоязычный сайт в то время, когда этого не было, а utf8 еще был в состоянии личинки. Вот это был адов писец. Четыре кодировки в одной таблице. Счас об этом можно только воспоминания писать, вроде как о компьютерах с перфокартами. А всего-то 7 лет прошло.

Аватар пользователя mrhuge mrhuge 11 ноября 2011 в 6:27

"direqtor" wrote:
Ужасы во введении кодировок в мускуль видят только те, кто до сих пор не счел за труд въехать в мануалы. Т.е. зачем и кому это нужно.

Ну надеюсь для этого случая и по этому поводу не придется лезть в мануалы. Я итак в них на drupal.org просиживаю безвылазно.

"direqtor" wrote:
Вот это был адов писец. Четыре кодировки в одной таблице. Счас об этом можно только воспоминания писать, вроде как о компьютерах с перфокартами. А всего-то 7 лет прошло.

Даа, Валентин, ваши тексты читать и смешно и ностальгично. Опыт у вас бесценный.

Аватар пользователя sanita sanita 11 ноября 2011 в 6:47

Сейчас задумалась. У меня друпал стоит на двух сайтах у разных хостеров. У одного по умолчанию базы в cp1251. Проблем не было - друпал с самого начала создает таблицы в нужной ему кодировке.

Вторая база была перенесена с локала, где тоже cp1251, на хостинг с UTF-8 - тоже проблем не было.

Вот как-то с друпалом даже не заморочивалась. А лет 5-6 назад были, например, большие проблемы с переносом/кодировкой с texpattern-ом - там кодировка некоторых таблиц при переносе менялась на дефаултную кодировку базы.

Аватар пользователя sanita sanita 11 ноября 2011 в 6:51

"direqtor" wrote:
Счас об этом можно только воспоминания писать, вроде как о компьютерах с перфокартами.

Я, я на заре своей юности работала с перфокартами! Первая моя работа сразу после школы была перфоратором в вычислительном центре. Было и два (!) персональных компьютера, но меня к ним подпустили аж через три месяца Smile
/* и не подумайте, что мне уже в обед сто лет Lol */

Аватар пользователя direqtor direqtor 11 ноября 2011 в 8:26

Ха. В госучереждениях, особенно медицина, образование и прочая безденежная социалка, особенно в провинции, вроде моей, до сих пор по разным углам трудолюбиво гудят такие ископаемые монстрики, что просто диву даёшся, как у них еще тараканы процессор не сожрали.

Аватар пользователя DenisVS DenisVS 11 ноября 2011 в 8:35

По теме, ничего страшного в смене кодировки быть не должно, если движок поддерживает нужную. Потому как через SET NAMES инициируется соединение с базой в требуемой.
А у меня ещё валяются где-то перфокарты с красивыми прямоугольными дырочками Smile Бумага добрая, очень плотная, при малой толщине. Пользовал раньше при намотке всяких катушенций-индуктивностей.

Аватар пользователя sanita sanita 11 ноября 2011 в 8:39

[OFF]

"direqtor" wrote:
Ха. В госучереждениях, особенно медицина, образование и прочая безденежная социалка, особенно в провинции, вроде моей, до сих пор по разным углам трудолюбиво гудят такие ископаемые монстрики, что просто диву даёшся, как у них еще тараканы процессор не сожрали.

Да, да - именно госучреждение было :), только не в провинции, а в республиканской столице - ВЦ Статистики. А через год я перешла наработу в ВЦ Министерства здравоохранения - так там чувствовала себя как космонавт на орбитальной станции - целых 3 (!) персональных компьютера и никаких перфокарт-табуляторов. И самое интересное, что там я была на должности "лаборант" ))

"DenisVS" wrote:
А у меня ещё валяются где-то перфокарты с красивыми прямоугольными дырочками Smile

Lol У меня их было видимо-невидимо - всех цветов радуги. И без дырочек - ну не буду же я брак выносить )) И еще, наверное, парочка где-то осталась - уж больно бумага у них качественная.
[/OFF]

Аватар пользователя direqtor direqtor 11 ноября 2011 в 12:28

"<a href="mailto:v1adimir@drupal.org">v1adimir@drupal.org</a>" wrote:
+1 ))

Поправлюсь, кстати. Личинкой тогда был весь Unicode. UTF-8 это всего лишь его ASCII-разновидность.

Аватар пользователя mrhuge mrhuge 12 ноября 2011 в 5:53

"DenisVS" wrote:
По теме, ничего страшного в смене кодировки быть не должно, если движок поддерживает нужную. Потому как через SET NAMES инициируется соединение с базой в требуемой.

Друпал всё-таки продуманная штука.

"Chyvakoff" wrote:
Золотое правило.
Если всё работает-лучше ничего не трогай.

Соглашусь. В общем решил оставить всё, как сделал согласно первого сообщения топика - конверт общей базы из cp1251 в utf8. Поживем - увидим, что будет.

Спасибо, коллеги, что отозвались и подсказали!

"DenisVS" wrote:
А у меня ещё валяются где-то перфокарты с красивыми прямоугольными дырочками :)

"sanita" wrote:
И самое интересное, что там я была на должности "лаборант" ))

Ностальгии этой темой пробудили - на пару голливудских драм хватит ))