Проблема latin1_swedish_ci

3 минуты на чтение

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

Да проблема решается легко, но только в том случае если ваши таблицы изначально были в одной кодировке. У меня было иначе, некоторые модули в таблице имели различные кодировки, были и  latin1_swedish_ci и windows 1251 а сама база MySQL  в utf8. Вот тут и начались проблемы, можно без труда используя утилиту SypexDumper 2.0 сохранить дамп базы в нужной кодировке и снова залить в базу и все, можно в самом дампе с помощью программы EmEditor(кстати очень нужная программа) заменить все упоминания  latin1_swedish_ci  на cp1251_general_ci да получается все нормально, кириллица хорошо читается в  MySQL но вот сам сайт вместо русского шрифта показывает кучу знаков вопроса ???????????.  И что только я не делал с базой, как только ее не кодировал, ошибку исправить не смог. Все гениальное как всегда оказалось намного проще.

Меня навели на мысль, что проблема может быть в самом движке. В данном случае движок был PHPFusion 7 но не оригинальная а модифицированная версия, да еще с кучей модулей. Кстати подобная проблема решается не только в движке PHPFusion, подобным образом она была решена и в самописном движке написанным в кодировке  windows-1251. В общем в файле Locale я выставил $locale[‘charset’] = “windows-1251” но этого тоже мало, создаём файл с именем .htaccess но у многих он уже есть, нужно просто его подправить добавив код AddDefaultCharset windows-1251. Но уже наверняка что бы работало, нужно найти в скриптах строку соединяющую движок с базой, в моем случае это файл maincore.php. В файле находим строчку

$db_connect = @mysql_connect($db_host, $db_user, $db_pass);

$db_select = @mysql_select_db($db_name);

И прямо под этими строками ниже добавляем

mysql_query (‘SET NAMES cp1251’);

mysql_query (‘SET CHARACTER SET cp1251’);

Проблема с кодировкой решена, но все таки я советую тем кто берет хостинги за бугром, сразу после установки движка зайти в базу данных  MySQL  и  исправить кодировку выставленную по умолчанию хостерами. Также после установки модулей также проверять кодировку. Иначе вам так же придется столкнуться с данной проблемой. Обязательно скачайте бесплатную утилиту SypexDumper на официальном сайте. http://sypex.net/ Это утилита для работы с базами данных. Незаменимая вещь для архивации и   восстановления вашей базы данных. Используя эту утилиту вы забудете о проблемах с восстановлением своего сайта.

Также всегда имейте в своем архиве программу EmEditor pro это прекрасная программа для правки дампа базы данных. Скачать можно тут  http://depositfiles.com/files/00i3wjujv

Facebook Vk Ok Twitter Telegram Whatsapp Pocket

Похожие записи:

Проблема с фоновым звуком (шумом) далеко не единичный случай, с этой проблемой сталкиваются все, кто занимается видеомонтажем. Шум на звуковой дорожке необязательно должен быть фоновым, сюда можно причислить различные фоновые артифакты, включая в первую очеред...
Для тех кто использует Adobe Premiere Pro CC 7.2 хорошая новость. Все наверное обратили внимание на глюки в версии 7.2, проблема решена с  выходом обновления.  Компания Adobe выпустила очередное обновление Adobe Premiere Pro CC 7.2.1  Update для программы виде...
В последнее время многие пишут об ошибке при запуске приложения Adobe Premiere Pro СС 2015.1. Да есть такая проблема на тех компьютерах которые работают на процессорах AMD. После установки обновлений: Adobe Premiere Pro CC 2015.1 (9.1) и Adobe After Effects CC...