0 Пользователей и 1 Гость просматривают эту тему.
  • 16 Ответов
  • 13786 Просмотров

 
При попытке добавить RSS поток в кодировке 1251 вместо русского текста отображаются ????????????
Встроенный парсер не умеет читать русские буквы для php5 и кодировки windows-1251.

СНАЧАЛА ДЕЛАЕМ РЕЗЕРВНУЮ КОПИЮ ИЗМЕНЯЕМЫХ ФАЙЛОВ!!!

Для правильного отображения текста при импорте RSS через встроенную читалку необходимо сделать следующее

1. идем в /includes/domit/xml_domit_rss_shared.php и строчку:
      $success = $this->node->parseXML($rssText, false);
Заменяем на
      $success = $this->node->parseXML($rssText, true);

2. в файле /includes/feedcreator.class.php если в строчке
   var $encoding = "Windows-1251";
заменяем на
   var $encoding = "UTF-8";

3. (подсказано SergejP в топике _http://joomlaforum.ru/index.php/topic,3722.0.html)
затем открываем файл /includes/joomla.php и ищем там функцию newsfeedEncoding( $rssDoc, $text )

После чего находим в этой функции следующий текст:

      if ( phpversion() >= 5 ) {
      // handling for PHP 5
         if ( _JOS_FEED_ENCODING ) {
         // handling for utf-8 feed
            if ( _JOS_SITE_ENCODING ) {
            // utf-8 page
               $encoding = 'html_entity_decode';
            } else {
            // non utf-8 page
               $encoding = 'utf8_decode';
            }
         } else {
         // handling for non utf-8 feed
            if ( _JOS_SITE_ENCODING ) {
               // utf-8 page
             
  $encoding = '';
            } else {
               // non utf-8 page
               $encoding = 'utf8_decode';
            }
         }
      } else {
   
 и меняем выделенные строки местами...
В итоге должно получиться следующее


      if ( phpversion() >= 5 ) {
      // handling for PHP 5
         if ( _JOS_FEED_ENCODING ) {
         // handling for utf-8 feed
            if ( _JOS_SITE_ENCODING ) {
            // utf-8 page
               $encoding = 'html_entity_decode';
            } else {
            // non utf-8 page
               $encoding = 'utf8_decode';
            }
         } else {
         // handling for non utf-8 feed
            if ( _JOS_SITE_ENCODING ) {
               // utf-8 page
               $encoding = 'utf8_decode';
            } else {
               // non utf-8 page
               $encoding = '';
            }
         }
      } else
 


Все. Наслаждаемся.
Проверено на Joomla Lavra Edition 1.0.15
« Последнее редактирование: 21.06.2008, 19:58:33 от sarportal »

Re: Коректировка кодировки RSS для php 5
« Ответ #1 : 12.06.2008, 22:48:47 »
Сегодня столкнулся с такой же проблемой на Joomla 1.0.13 RE
Все заработало после вышеуказанной модификации.

*

maestra

  • Захожу иногда
  • 80
  • 6 / 1
Re: Коректировка кодировки RSS для php 5
« Ответ #2 : 19.06.2008, 22:53:48 »
Joomla 1.0.12 LE - заработало. Автору спасибо

Re: Коректировка кодировки RSS для php 5
« Ответ #3 : 20.06.2008, 03:18:45 »
Joomla_1.0.15-Stable-Full_Package
PHP Version:    5.2.6
после всех манипуляций вместо вопросиков стала абракадабра
сам сайт в win 1251  а rss выводится в utf 8 как сделать что бы в одной кодировке выводились? =)

Re: Коректировка кодировки RSS для php 5
« Ответ #4 : 21.06.2008, 19:51:23 »
после всех манипуляций вместо вопросиков стала абракадабра
сам сайт в win 1251  а rss выводится в utf 8 как сделать что бы в одной кодировке выводились? =)

Насколько я понял у Вас вместо "?????????????????????..." стало "РђРЅСЋРєРѕРІ, Р�РіРѕСЂСЊ Денисов, РђРЅР......."

1. Проверьте правильность выполнения пунктов 1 и 2.

2. Проверьте пункт 3. Вы точно сделали для php 5 ? 
Нужно найти   if ( phpversion() >= 5 ) {
Там есть такие же строчки но для php4 . Они чуть ниже.
                      if ( phpversion() >= 4 ) {
Их трогать не нужно. Они для Вас роли не играют.


3. Посмотрите в шаблоне какая указана кодировка сайта. Если шаблон импортный - там в основном стоит всегда UTF8.  Замените тег на <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />

Если ничего не помогло - переходите на Joomla_1.0.15 Lavra Edition.
Если не ставили расширения, которые изменяют стандартные файлы (Jack + и т.д.) - просто разархивируйте дистрибутив и замените все файлы.  Подробнее тут http://andyr.mrezha.ru/
« Последнее редактирование: 21.06.2008, 20:24:19 от sarportal »
*

pedrosoft

  • Захожу иногда
  • 367
  • 113 / 7
Re: Коректировка кодировки RSS для php 5
« Ответ #5 : 21.06.2008, 23:39:43 »
ziggy_marley, для вашей версии Жумлы достачно сделать лишь то что описано ТУТ и:

2. в файле /includes/feedcreator.class.php если в строчке
   var $encoding = "Windows-1251";
заменяем на
   var $encoding = "UTF-8";

Править  /includes/joomla.php вам не нужно!
Интернет Хостинг Центр: отличные цены, лучшее качество, расположение в дата-центре «Оверсан-Меркурий»

Re: Коректировка кодировки RSS для php 5
« Ответ #6 : 22.06.2008, 01:44:27 »


Править  /includes/joomla.php вам не нужно!

Спасибо, буду знать. Просто никогда с этой версией Joomla не работал :)

Мною проверено на :

Joomla Lavra Edition 1.0.15
Joomla 1.0.13 RE


Проверена maestra на :

Joomla 1.0.12 LE

У кого еще проверено на каких версиях, делитесь !
« Последнее редактирование: 25.06.2008, 01:28:43 от sarportal »
*

maestra

  • Захожу иногда
  • 80
  • 6 / 1
Re: Коректировка кодировки RSS для php 5
« Ответ #7 : 23.06.2008, 19:53:31 »
Мною версия Проверена на :
Ну, наверное не версия проверена, а хак на версиях ? :)

Re: Коректировка кодировки RSS для php 5
« Ответ #8 : 25.06.2008, 01:25:19 »
Ну, наверное не версия проверена, а хак на версиях ? :)
:) Я имел ввиду моя версия исправлений проверена, т.е. хак.
*

Prediger

  • Захожу иногда
  • 65
  • 1 / 0
Re: Коректировка кодировки RSS для php 5
« Ответ #9 : 10.08.2008, 21:04:23 »
Использовал приведённые выше советы для Joostina. Некоторые ленты заработали, типа lenta.ru Но вот другие так и выдают знак вопроса. К примеру, вот эта лента http://www.km.ru/news/rss.asp

Re: Коректировка кодировки RSS для php 5
« Ответ #10 : 11.08.2008, 23:32:05 »
Этот хак для трансляции новостей в windows-1251 А км транслирует в utf. По этому и знаки вопроса. Выбирайте и транслируйте ленты в windows-1251
*

belbox

  • Новичок
  • 5
  • 0 / 0
Re: Коректировка кодировки RSS для php 5
« Ответ #11 : 28.12.2008, 22:28:23 »
А как быть если стоит  Lavra Edition 2008 и используется модуль Slick RSS. При этом PHP 4.4.8, шаблон в 1251 а rss только в utf-8 можно прочесть.
Как здель что можно полечить?

Re: Коректировка кодировки RSS для php 5
« Ответ #12 : 03.02.2009, 02:54:55 »
Joomla 1.0.15 RE Проверено, работает
*

scorp66

  • Осваиваюсь на форуме
  • 30
  • 1 / 0
Re: Коректировка кодировки RSS для php 5
« Ответ #13 : 04.02.2009, 00:40:18 »
У меня тоже Joomla 1.0.15 RE. После проделанных манипуляций, указанных в топе, сайт перестал грузиться. Вот что появилось:

Warning: Cannot modify header information - headers already sent by (output started at /home/ahtybapy/public_html/includes/joomla.php:12313) in /home/ahtybapy/public_html/index.php on line 255

Warning: Cannot modify header information - headers already sent by (output started at /home/ahtybapy/public_html/includes/joomla.php:12313) in /home/ahtybapy/public_html/index.php on line 256

Warning: Cannot modify header information - headers already sent by (output started at /home/ahtybapy/public_html/includes/joomla.php:12313) in /home/ahtybapy/public_html/index.php on line 257

Warning: Cannot modify header information - headers already sent by (output started at /home/ahtybapy/public_html/includes/joomla.php:12313) in /home/ahtybapy/public_html/index.php on line 258

Warning: Cannot modify header information - headers already sent by (output started at /home/ahtybapy/public_html/includes/joomla.php:12313) in /home/ahtybapy/public_html/index.php on line 259

Забыл добавить, версия PHP 5.2.8
« Последнее редактирование: 04.02.2009, 00:48:10 от scorp66 »

Re: Коректировка кодировки RSS для php 5
« Ответ #14 : 19.03.2009, 15:32:58 »
Нужен специалист который поймет почему вопросы в RSS! Готов проплатить разумные дэнги
*

elvis

  • Новичок
  • 8
  • 0 / 0
Re: Коректировка кодировки RSS для php 5
« Ответ #15 : 23.03.2009, 01:09:45 »
Афтору спасибо, очень помогло lavra 1.0.15 php5
*

Demon

  • Новичок
  • 9
  • 0 / 0
Re: Коректировка кодировки RSS для php 5
« Ответ #16 : 15.04.2009, 14:50:17 »
Все работает великолепно! Огромное спасибо.
Проверено на версиях:
 - SEO Joomla 1.0.13
 - Joostina 1.1.3
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться