Проблемы с кодировкой

Тема в разделе "NewsGrabber", создана пользователем Maxet, 13 ноя 2006.

Статус темы:
Закрыта.
  1. Maxet

    Maxet Создатель

    Регистр.:
    12 ноя 2006
    Сообщения:
    11
    Симпатии:
    0
    В некоторых темах встречал сообщения о проблемах с кодировками после установки, но тема так и не раскрыта и решений на форуме я так не увидел.
    Проблема в следующем.
    После грабления, открываем страницу с новостями - там кракозяблы. Меняем в браузере кодировку на утф - всё ок, но нужно обязательно вин-1251.
    Становится понятным, что в базу данные грабятся в утф.
    Кодировка в бд по умолчанию утф. Если открыть админку ньюсграббера - там тоже всё в утф.
    Стук х хостеру не помог, они сослались на стандартный хелп в котором
    ничего толком нет (попытка смены кодировки: сопоставление, сравнение и тп не помогают.).
    Сразу скажу что я не программер и поэтому не судите сторго, но мне кажется проблему устранять надо на этапе грабления, т.е. установить граб в кодировке вин-1251.
    Вопрос как это сделать? Поможите люди добрые!
    Версия мускуля 5.0.24a
     
  2. someone

    someone сисадмин всея 0ed

    Administrator
    Регистр.:
    3 апр 2006
    Сообщения:
    330
    Симпатии:
    373
    Это бага newsgrabber-a...
    Старые версии , что в паблике вообще плохо работают с ютф-ом.
    Выбирайте для грабления сайты где отдается не utf8...
    или разбирайтесь с кодом.

    более новые, чуть лучше. то есть умеют распознать по заголовкам страницы и прекодировать контент в cp1251...

    но если rss лента, например, нигде о себе не говорит что она отдается в юникоде - будут крокозябры. Даже в нынешних версиях.
     
  3. Maxet

    Maxet Создатель

    Регистр.:
    12 ноя 2006
    Сообщения:
    11
    Симпатии:
    0
    Дык во всех лентах rss которые я граблю стоит чарсет 1251.
    Получается грабер сам перекодирует в утф так?
     
  4. someone

    someone сисадмин всея 0ed

    Administrator
    Регистр.:
    3 апр 2006
    Сообщения:
    330
    Симпатии:
    373
    если контент в 1251, рсс в 1251, то ищи кривизну в своих руках и настройках хостинга...
     
  5. Dimonn_s

    Dimonn_s Прохожие

    Была похожая проблема, заголовки в админки тоже криво отображались, вылечил в БД , создал новую БД сопоставление 1251 general ci и заработало )
     
  6. Maxet

    Maxet Создатель

    Регистр.:
    12 ноя 2006
    Сообщения:
    11
    Симпатии:
    0
    Поставил сопоставление соединения с MySQL: 1251, также в самой бд (через операции) поставил сравнение 1251, удалил все новости, потом грабанул заново всё - на старице браузера опять утф.
    Это из - за того что MySQL-кодировка: UTF-8 Unicode (utf8)?
    Если это так, то как исправить? Хостера мне менять не хотелось бы.
    Повторяю ещё раз - я не спец в бд и php - у меня другой профиль деятельности, но по необходимости приходится разбираться с этим скриптом. Поможите люди добрые!
     
  7. Dimonn_s

    Dimonn_s Прохожие

    не я вообще сносил таблцы все,снасил граббер , потом создавал БД (у меня по умолчанию тоже utf_) и сразу выставлял сравнение 1251 , потом ставил грабер и заработало
     
  8. pilot233

    pilot233

    Регистр.:
    24 июн 2006
    Сообщения:
    405
    Симпатии:
    88
    Вся эта юайда происходит если у Вас 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 но бывает и не проходит п.э надо проделать вышеописанную операцию.
     
    prokol нравится это.
  9. Maxet

    Maxet Создатель

    Регистр.:
    12 ноя 2006
    Сообщения:
    11
    Симпатии:
    0
    :thenks:
    Эта схема работает, насколько мне известно, когда на страницах отображаются ???? и эта схема канает когда нет параметра 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 мускуле всё работает, но тут....
     
  10. pilot233

    pilot233

    Регистр.:
    24 июн 2006
    Сообщения:
    405
    Симпатии:
    88
    Если ты заметил то я писал для версий т 4.1 и до 5.** п.э там могут быть различия.
     
Статус темы:
Закрыта.