|
Проблема с кодировкой - не проблема!
|
|
20.02.2013, 19:21
|
|
#1
|
Регистрация: 26.03.2011
Сообщений: 1,395
|
Проблема с кодировкой - не проблема!
|
Наверняка каждый владелец сайта хоть раз но сталкивался с проблемой неправильной кодировки контента. Наиболее этому подвержены владельцы русскоязычных проектов, но иногда UTF создает неприятности и для англоязычных сайтов. Наиболее распространенная проблема - неправильное указание кодировки в метатегах, или отсутствие таковых вообще (бывает и такое). В этом случае все решается очень просто - замена кодировки на правильную , или внесение этого метатега в случает его отсутствия в код.
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" /> Но бывает и другая сторона в проблеме неправильной кодировки - это неправильная конфигурация базы данных. При этом неважно построен ваш сат на CMS (DLE, Vordpress, Joomla, Vbulletin...) или разработан на самописном движке, вероятность проблемы имеют ВСЕ!. Но самое страшное в этом случае то, что вы можете даже не догадываться про эту проблему - на сайте информация выглядит как положено, данные вносятся, извлекаются, все работает как часы, пока в один НЕПРИЯТНЫЙ момент база данных рушится. Неважно почему это произошло - из-за случайного стечения обстоятельств, из-за расположения планет солнечной системы относительно галактики Андромеды, или в следствии наличия кривых ручонок у людской особи, имеющей доступ к недрам сайта... НЕВАЖНО, так как восстановление из бекапа может закончится полным ФИАСКО.
А может быть и другая ситуация - вы решаете сменить хостера на более лояльного, подготовились к переезду, ДАЖЕ переехали, сайт запускается и что вы видите? В идеале - все работает и вы дальше живете с чистым сердцем до предыдущей ситуации. Или - все выводится в крякозябрах, и вы шестой точкой чувствуя проблему в базе - находите ее И ВОВРЕМЯ, надо сказать, так как бывает третья ситуация - самая страшная.
Это когда вы открываете сайт а там все в знаках вопросов, открываете базу а там - ТОЖЕ ЗНАКИ ВОПРОСОВ . Это все - можно смело сказать что сайт накрылся белым пушистым зверьком и рвать волосы из всех труднодоступных мест. Обратного пути у это превращения не существует! И дай Бог, чтоб ваш сайт еще был у старого хостера, вы быстренько проплатили его услуги еще на месяц и занялись восстановлением информации.
Поэтому предлагаю самое оптимальное, и наименее затратное по финансам и по времени средство - Sypex Dumper Pro 2.0.10. Качать лучше всего с сайта разработчиков https://sypex.net/. Но за него придется выложить 10 басков (согласитесь - это недорого за спокойный сон и благополучие базы данных). Эти деньги пойдут на
приобретение лицензии для своего домена. Итак пошагово - регистрируемся https://sypex.net/ru/pc/auth/ и ждем письма. Мне оно пришло в папку СПАМ, поэтому если его долго нету - проверьте спамосборник.
Письмо пришло? - заходим на сайт и покупаем лицензию
Активируем ее
Далее скачиваем нужную версию модуля
Все они отличаются кодировщиком и требованиями к версии PHP, установленной на сервере. если не знаете эти
данные, то создайте php файл с кодом
<?php
phpinfo(INFO_GENERAL);
?>
Немного пояснения зачем покупать ПРО версию если есть более ранние и бесплатные. А все дело вот в чем - в этой версии реализована корректная работа с бинариками (т.е. таблицами в которых содержатся бинарные данные - аватарки, картинки, музыка). Раньше такие таблицы приходилось обрабатывать вручную что существенно уменьшало успешность операции новичками и увеличивало время работы над перекодировкой. так что не жмем и берем платную версию, тем более что лицензия пожизненная и очень упрощает создание бекапов в дальнейшем. Вы спросите - почему не сделать бекап с помощью phpmyadmin и ен перекодировать эдитором?
А вот почему - для Sypex Dumper нету ограничения в заливке и создании бекапов, очень быстрая работа по сравнению с другими вариантами. ну и опять таки - отсутствие проблемы при работе с бинарными данными. Вы когда-то пробовали залить через phpmyadmin бекап весом около 100 метров? - Если вы не root, то через
веб-интерфес это не получится НИКОГДА. А вот Sypex Dumper заливает оперативненько и без каких-либо проблем.
Теорию в сторону, идем дальше. Итак скачали - распаковали - залили модуль и лицензию в папку модуля. Запускаем модуль, и если все верно, то вы увидите вот такое окошко.
Вводим логин и пароль на базу и видим дружественный интерфейс.
Создаем первый бекап (почему первый расскажу позже), для этого выбираем нашу базу (1), кодировку делаем авто (2), вводим комменты для бекапа, хотя они и так в имени содержат дату и время создания. И нажимаем Выполнить (3).
Так, первый бекап создан, самое время начать перекодировку, но хочу внести немного теории .
Как правило все сайты используют две кодировки либо UTF-8 либо CP1251. Есть большая разница в этих перекодировках:
1251 - эта кодировка хороша тем изначально создана под русскоязычный контент и корректно работает с кириллицей, но при перекодировке из latin (это наиболее Частая кодировка баз по умолчанию) в 1251 весь русский текст становится вот таким "????? ?? ??????? ????", без обратного превращения. Поэтому надо сначала переводить в UTF-8, а потом уже в 1251.
UTF-8 - Кодировка всем хорошая, но не делает различия в буквах "ё" и "е", u и умляут (u с двумя точками) и т.д.... но позволяет вводить в текст восточные иероглифы. Какая кодировка лучше до сих пор не ясно. Каждая имеет свои преимущества и свои недостатки. Спор длится уже годами и пока единственный аргумент в пользу UTF-8 - упрощение жизни программисту.
Итак, с кодировками разобрались, а теперь делаем ВТОРОЙ бекап по первой схеме. Для чего? А для того чтоб в случае неудачной перекодировки у вас был запасной вариант, от которого можно возродить исходный сайт и пробовать снова.
Будем считать что два бекапа вы сделали - один чистовой, который не трогаем вообще, и второй рабочий. В принципе можно и одним обойтись, но с двумя как-то безопаснее.
Дале переходим на вкладку ИМПОРТ, выбираем базу (1), рабочий бекап (2), ставим требуемую кодировку (рекомендую УТФ, чтоб не получить знаки вопросов) (3), и включаем Коррекция кодировки (4). Выполняем.
С замирание сердца проверяем сайт - если вы счастливчик, то увидите рабочий сайт, и забываете проблемную кодировку как плохой сон. Если нет - вы увидите или иероглифы, или знаки вопросов. Тут уже надо смотреть что творится в базе - если в базе все хорошо (вы видите читаемый текст, а не кракозябры), значит проблема в кодировке страницы - об этом мы говорили в начале статьи.
Есть еще один пункт - если сайт на 1251, а базу вы перевели в УТФ, то надо перейти на вкладку Сервисы(1) И выбрать Дополнительно (2), изменить кодировку(3) . И меняем на 1251 (4).
Вот и все. Удачи вам и вашим сайтам.
|
|
|
21.02.2013, 00:43
|
|
#2
|
Регистрация: 25.08.2012
Сообщений: 53
|
Ух и навел страху в начале!
Вообще статья отличная, недавно как раз мучился с импортом баз в phpMyAdmin: какие там 100 Мб - 1,2 Мб не хотел кушать, при том, что под root в php.ini все настроил.
В итоге бекапнул через консоль Убунты и забыл
|
|
|
21.02.2013, 00:49
|
|
#3
|
Регистрация: 04.05.2011
Сообщений: 382
|
Давно пользуюсь бесплатной версией, вещь достойная, но не знал однако про ПРО возможности, спасибо - статья отличная.
|
|
|
21.02.2013, 02:13
|
|
#4
|
Регистрация: 11.02.2012
Сообщений: 2,241
|
Матрос забыл упомянуть, что данная программа поддерживает только беки ею же и созданные. Если бек чужой - нифига вы не восстановите. Или вы Матрос не знаете об этом?
Пользуюсь бесплатным дампером разработанным одним хорошим человеком Alexey Ozerov очень давно. Позволяет загрузить бек даже в несколько гиг. Смена кодировки присутствует. Правда нет такого красивого интерфейса, но он и не нужен. Весь дампер состоит из одного пхп файла 35кб.
|
|
|
21.02.2013, 13:08
|
|
#5
|
Регистрация: 26.03.2011
Сообщений: 1,395
|
Сообщение от miraida
данная программа поддерживает только беки ею же и созданные
| Да, забыл упомянуть.
Бесплатная версия имеет проблему с обработкой бинарных файлов. специально скачивал ее и пробовал - графические файлы рушатся. А если только текстовые , то сойдет тоже. Но я бы рекомендовал ПРО - понадежнее будет
|
|
|
21.02.2013, 21:04
|
|
#6
|
Регистрация: 04.05.2011
Сообщений: 382
|
Сообщение от miraida
одним хорошим человеком Alexey Ozerov очень давно
| А где линк, чтоб скачать на сие чудо?
|
|
|
21.02.2013, 21:19
|
|
#7
|
Регистрация: 11.02.2012
Сообщений: 2,241
|
Я же специально указал имя автора. Но если лень погуглить - "алексей озеров дампер".
Страница автора - http://www.ozerov.de/bigdump/
BigDump очень прост в работе - нужно указать настройки для соединения с базой данных и кодировку. Создайте любую папку в корне. Дамп поместите в одну папку со скриптом, и затем наберите в браузере путь к скрипту.
Скрипт зальет Ваш дамп буквально за несколько минут. Суть в том, что дамп заливается в базу данных кусочками, не превышая лимитов хостинга. |
|
|
|
21.02.2013, 23:02
|
|
#8
|
Регистрация: 04.05.2011
Сообщений: 382
|
Дак скрипт тока в одну сторону работает, т.е. восстанавливает бекап БД, а создать бекап БД (Дамп) ей нельзя?
|
|
|
22.02.2013, 01:10
|
|
#9
|
Регистрация: 11.02.2012
Сообщений: 2,241
|
Бек легко создается в панели штатными средствами. Проблемы обычно возникают именно с восстановлением базы.
Я указал недостаток программы ТС - она поддерживает только дампы ею же и созданные. Дампы сделанные другими средствами она не видит. И наоборот - сделанные ею дамп, нельзя загрузить с помощью других средств.
|
|
|
Здесь присутствуют: 1 (пользователей: 0, гостей: 1)
|
|
|