Ответ
Проблема с кодировкой - не проблема! Опции темы
Старый 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).








Вот и все. Удачи вам и вашим сайтам.
Нравится 0   Не нравится 0
Пожаловаться на это сообщение 0  
Ответить с цитированием
Старый 21.02.2013, 00:43
  #2
Ashable
 
Аватар для Ashable
Регистрация: 25.08.2012
Сообщений: 53

Ух и навел страху в начале!

Вообще статья отличная, недавно как раз мучился с импортом баз в phpMyAdmin: какие там 100 Мб - 1,2 Мб не хотел кушать, при том, что под root в php.ini все настроил.

В итоге бекапнул через консоль Убунты и забыл
Нравится 0   Не нравится 0
Пожаловаться на это сообщение 0  
Ответить с цитированием
Старый 21.02.2013, 00:49
  #3
rety
 
Регистрация: 04.05.2011
Сообщений: 382

Давно пользуюсь бесплатной версией, вещь достойная, но не знал однако про ПРО возможности, спасибо - статья отличная.
Нравится 0   Не нравится 0
Пожаловаться на это сообщение 0  
Ответить с цитированием
Старый 21.02.2013, 02:13
  #4
miraida
 
Аватар для miraida
Регистрация: 11.02.2012
Сообщений: 2,241

Матрос забыл упомянуть, что данная программа поддерживает только беки ею же и созданные. Если бек чужой - нифига вы не восстановите. Или вы Матрос не знаете об этом?
Пользуюсь бесплатным дампером разработанным одним хорошим человеком Alexey Ozerov очень давно. Позволяет загрузить бек даже в несколько гиг. Смена кодировки присутствует. Правда нет такого красивого интерфейса, но он и не нужен. Весь дампер состоит из одного пхп файла 35кб.
Нравится 0   Не нравится 0
Пожаловаться на это сообщение 0  
Ответить с цитированием
Старый 21.02.2013, 13:08
  #5
Матрос
 
Аватар для Матрос
Регистрация: 26.03.2011
Сообщений: 1,395

Сообщение от miraida Посмотреть сообщение
данная программа поддерживает только беки ею же и созданные
Да, забыл упомянуть.

Бесплатная версия имеет проблему с обработкой бинарных файлов. специально скачивал ее и пробовал - графические файлы рушатся. А если только текстовые , то сойдет тоже. Но я бы рекомендовал ПРО - понадежнее будет
Нравится 0   Не нравится 0
Пожаловаться на это сообщение 0  
Ответить с цитированием
Старый 21.02.2013, 21:04
  #6
rety
 
Регистрация: 04.05.2011
Сообщений: 382

Сообщение от miraida Посмотреть сообщение
одним хорошим человеком Alexey Ozerov очень давно
А где линк, чтоб скачать на сие чудо?
Нравится 0   Не нравится 0
Пожаловаться на это сообщение 0  
Ответить с цитированием
Старый 21.02.2013, 21:19
  #7
miraida
 
Аватар для miraida
Регистрация: 11.02.2012
Сообщений: 2,241

Я же специально указал имя автора. Но если лень погуглить - "алексей озеров дампер".

Страница автора - http://www.ozerov.de/bigdump/

BigDump очень прост в работе - нужно указать настройки для соединения с базой данных и кодировку. Создайте любую папку в корне. Дамп поместите в одну папку со скриптом, и затем наберите в браузере путь к скрипту.
Скрипт зальет Ваш дамп буквально за несколько минут. Суть в том, что дамп заливается в базу данных кусочками, не превышая лимитов хостинга.
Нравится 0   Не нравится 0
Пожаловаться на это сообщение 0  
Ответить с цитированием
Старый 21.02.2013, 23:02
  #8
rety
 
Регистрация: 04.05.2011
Сообщений: 382

Дак скрипт тока в одну сторону работает, т.е. восстанавливает бекап БД, а создать бекап БД (Дамп) ей нельзя?
Нравится 0   Не нравится 0
Пожаловаться на это сообщение 0  
Ответить с цитированием
Старый 22.02.2013, 01:10
  #9
miraida
 
Аватар для miraida
Регистрация: 11.02.2012
Сообщений: 2,241

Бек легко создается в панели штатными средствами. Проблемы обычно возникают именно с восстановлением базы.
Я указал недостаток программы ТС - она поддерживает только дампы ею же и созданные. Дампы сделанные другими средствами она не видит. И наоборот - сделанные ею дамп, нельзя загрузить с помощью других средств.
Нравится 0   Не нравится 0
Пожаловаться на это сообщение 0  
Ответить с цитированием

Ответ
 
 

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема при постинге useresu Вопросы 12 09.07.2013 23:55
Проблема ложных абуз: почему ФО не проверяют их? VasyaS Файлообмен 36 24.11.2012 12:20
в чом состоит моя проблема? iase Файлообмен 7 30.05.2012 17:46
Сайт на DLE, проблема в краткой новости. Google [bot] Вопросы 2 27.08.2011 17:31

Метки
sypex dumper, utf-8, windows-1251, кодировка, кракозябры, мануал, перенос базы, проблемы с базой


Здесь присутствуют: 1 (пользователей: 0, гостей: 1)
 
Опции темы

Быстрый переход


Текущее время: 15:18. Часовой пояс GMT +3.