pilot233 написал(а):
Вся эта юайда происходит если у Вас Mysql 4.1 и выше. Один из вариантов через шелл в php.ini надо прописать charset=1251 (ну это у кого есть шелл). Обычьный ремон:
1. После установки ничего не добалять, ничего не делать идем в phpMyadmin и там будем делать;
2. Выделяем всю таблицу идем в меню (сверху) "Операции" вот там выбираем для все таблицы "cp1251_general_ci"
3. Далее справа у Вас будет панель где перечислены названия ваших таблиц так вот. Поочередно нажимаем на каждую ссылку (название таблицы) она открывает так сказать внутренность таблицы (и это очень важно не только сравнение cp1251_general_ci но и сама таблица должна понимать, что она cp1251_general_ci) опять выделяем всю данную таблицу и внизу этой таблицы есть карандаш (редактирование) нажимаем и в следующем диалоговом окне меняем latin1_swedish_ci на cp1251_general_ci и это проделываем с каждой табличькой обязательно.
4. Это лечит любую проблему с кодировкой главное дать понять таблице (не только шрифту) что она и есть таблица cp1251_general_ci
5. Что бы дальше небыло проблем качаете бесплатный скрипт dumper версии 1.08 ни 1.07, а имено 1.08 потому как вней есть прекрасные функции сохранения и восстановления базы с принудительно кодировкой cp1251 ну и как всем известно она работает с большимы базами. Но потом лучьше восстанавливать тоже через dumper.
Вродибы все. Всем пожалуйста!
Добавлено через 20 минут
Админы это не флейм просто вылето из головы, а открыв phpMYadmin вспомнил еще одно необходимое действие.
При открытии таблицы их 14 и в меню сверху рядом со (сравнением) есть меню (рамер) и там размер каждой таблички в виде ссылки так вот нажимаем на ссылк с размером в следующем окне (выделеть все), далее нажимаем (Операции) и там выставляем cp1251_general_ci вот тогда ваша таблица будет понимать, что она cp1251_general_ci. Иногда этого делать не нужно оно проходит когда выделяешь все таблицы основные и делаешь сравнение с cp1251_general_ci но бывает и не проходит п.э надо проделать вышеописанную операцию.
Эта схема работает, насколько мне известно, когда на страницах отображаются ???? и эта схема канает когда нет параметра SET NAMES cp1251 (у меня была такая проблема на 5 мускуле с двумя БД других скриптов - вылечилась быстро установлением сравнения latin1_swedish_ci).
Но на всякий случай попробовал эту схему - не помогло - контент вообще не грабится.
На данный момент проблема начала частично решаться по следующей схеме:
1) ставим как есть на 5 мускуль,
2) ставим в самом грабере SET NAMES utf8,
3) грабим,
4) смотрим новости в админке - всё ок, смотрим в бд - всё ок, смотрим сами новости в браузере - каракули в утф :-(
5) ставим опять SET NAMES cp1251 (новости уже грабануты в пункте 3, в этом пункте ничего не грабим) - смотрим во всех местах, даже в браузере всё в 1251 работает! но не менять же постоянно SET NAMES и грабить вручную - ведь крона тож охота поюзать?!
Т.о. решение проблемы - при грабе соединение SET NAMES utf8, при непосредственном вытаскивании новости и просмотре в браузере SET NAMES cp 1251 - но как сделать?!
Такое ощущение, что я уже порядком начудил с этой софтиной! Но хостинг менять ой-как гемморно!
Дома блин на 4 мускуле всё работает, но тут....