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

Статус
В этой теме нельзя размещать новые ответы.

Maxet

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

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

но если rss лента, например, нигде о себе не говорит что она отдается в юникоде - будут крокозябры. Даже в нынешних версиях.
 
someone написал(а):
Это бага newsgrabber-a...
Старые версии , что в паблике вообще плохо работают с ютф-ом.
Выбирайте для грабления сайты где отдается не utf8...
или разбирайтесь с кодом.

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

но если rss лента, например, нигде о себе не говорит что она отдается в юникоде - будут крокозябры. Даже в нынешних версиях.
Дык во всех лентах rss которые я граблю стоит чарсет 1251.
Получается грабер сам перекодирует в утф так?
 
если контент в 1251, рсс в 1251, то ищи кривизну в своих руках и настройках хостинга...
 
Maxet написал(а):
Дык во всех лентах rss которые я граблю стоит чарсет 1251.
Получается грабер сам перекодирует в утф так?
Была похожая проблема, заголовки в админки тоже криво отображались, вылечил в БД , создал новую БД сопоставление 1251 general ci и заработало )
 
Dimonn_s написал(а):
Была похожая проблема, заголовки в админки тоже криво отображались, вылечил в БД , создал новую БД сопоставление 1251 general ci и заработало )
Поставил сопоставление соединения с MySQL: 1251, также в самой бд (через операции) поставил сравнение 1251, удалил все новости, потом грабанул заново всё - на старице браузера опять утф.
Это из - за того что MySQL-кодировка: UTF-8 Unicode (utf8)?
Если это так, то как исправить? Хостера мне менять не хотелось бы.
Повторяю ещё раз - я не спец в бд и php - у меня другой профиль деятельности, но по необходимости приходится разбираться с этим скриптом. Поможите люди добрые!
 
Maxet написал(а):
Поставил сопоставление соединения с MySQL: 1251, также в самой бд (через операции) поставил сравнение 1251, удалил все новости, потом грабанул заново всё - на старице браузера опять утф.
Это из - за того что MySQL-кодировка: UTF-8 Unicode (utf8)?
Если это так, то как исправить? Хостера мне менять не хотелось бы.
Повторяю ещё раз - я не спец в бд и php - у меня другой профиль деятельности, но по необходимости приходится разбираться с этим скриптом. Поможите люди добрые!
не я вообще сносил таблцы все,снасил граббер , потом создавал БД (у меня по умолчанию тоже utf_) и сразу выставлял сравнение 1251 , потом ставил грабер и заработало
 
Вся эта юайда происходит если у Вас 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 но бывает и не проходит п.э надо проделать вышеописанную операцию.
 
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 но бывает и не проходит п.э надо проделать вышеописанную операцию.
: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 мускуле всё работает, но тут....
 
Если ты заметил то я писал для версий т 4.1 и до 5.** п.э там могут быть различия.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху