RSS поток.

Автор we1t, 04 января 2009, 17:04:44

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

we1t

Прошу прощения, если тема уже поднималась (по слову rss найти ничего нельзя - мало букв).
Установил мод на форум SMF Mod Site для транслирования из ЖЖ, но выходит кракозябра вроде:
ЦитироватьћС,крылось РЅРѕРІРѕРµ сообщесС,РІРѕ!
 

РћС,крылось РЅРѕРІРѕРµ сообщесС,РІРѕ РїРѕ адресу:

Игры с настройками не помогли. Не помогла и опция "HTML Enabled" - появляются теги "как есть".
Есть ли вариант решения?

Спасибо.
Версия форума 1.7, данные не в UTF.


we1t

Цитата: digger от 04 января 2009, 17:38:11
В rss всегда кодировка utf8.

Вопрос - что делать?
Преобразовать в "Обслуживании форума" базу данных в UTF-8?
На что это может повлиять?

digger®

Цитата: we1t от 04 января 2009, 17:42:32
Вопрос - что делать?
Или переводить весь форум в utf или добавить в мод перекодирову.
Цитировать
Преобразовать в "Обслуживании форума" базу данных в UTF-8?
На что это может повлиять?
Потребуется русификация форума и всех модов в utf8.

we1t

А существуют ли rss-моды для СP-1251? Или перекодировщики... Очень не хочется все подряд менять.

digger®

Цитата: we1t от 04 января 2009, 21:56:57
А существуют ли rss-моды для СP-1251? Или перекодировщики... Очень не хочется все подряд менять.

Мод rss-ридера всего один - тот о котором и идет речь.

В Subs-RSS.php

После

// Create the Post

$msg_title = ...
$msg_body = ...

добавить

$msg_title = iconv ("UTF-8","CP1251//IGNORE", $msg_title);
$msg_body = iconv ("UTF-8","CP1251//IGNORE", $msg_body);

we1t

Странно, теперь вообще ничего не публикуется.

digger®

Цитата: we1t от 05 января 2009, 18:10:57
Странно, теперь вообще ничего не публикуется.

У меня это место выглядело так


// Create the Post
	
	
	
	
	
	
	
	

// * Modded by Digger
$msg_title addslashes($feed['html'] ? $context['feeditems'][$i]['title'] : strip_tags($context['feeditems'][$i]['title']));
$msg_body =  addslashes($feed['html'] ? $context['feeditems'][$i]['description'] . "\n\n" $context['feeditems'][$i]['link']  : strip_tags($context['feeditems'][$i]['description'] .  "\n\n" $context['feeditems'][$i]['link']));
                
$msg_title iconv ("UTF-8","CP1251//IGNORE"$msg_title);
$msg_body iconv ("UTF-8","CP1251//IGNORE"$msg_body);
                
// Modded by Digger * 

we1t

У меня так (сейчас после вставки двух последних строчек):

// Create the Post
$msg_title = $func['htmlspecialchars'](($feed['html'] ? $context['feeditems'][$i]['title'] : strip_tags($context['feeditems'][$i]['title'])), ENT_QUOTES);

$msg_body =  $func['htmlspecialchars'](($feed['html'] ? $context['feeditems'][$i]['description'] . "\n\n" . $context['feeditems'][$i]['link']  : strip_tags($context['feeditems'][$i]['description'] .  "\n\n" . $context['feeditems'][$i]['link'])), ENT_QUOTES);
$msg_title = iconv ("UTF-8","CP1251//IGNORE", $msg_title);
$msg_body = iconv ("UTF-8","CP1251//IGNORE", $msg_body);



we1t

Все. Разобрался.
Проблема оказалась только в том, что необходимо принудительно запускать /cronrss.php. Несмотря на установленные значения (обновлять раз в 30 минут), никакого обновления не происходит. Странно. Конечно, я могу альтернативными средствами (не форума) установить запуск раз в 30 минут, но это будет не совсем правильно...

Кстати, прилагаю окончательную версию русифицированного мода - может быть, кому-то она и поможет.

we1t

Цитата: digger от 04 января 2009, 17:38:11
В rss всегда кодировка utf8.

Не всегда. RSS-потоки от форумов Web Wiz Forums на платформе Windows 2003 Server почему-то транслируют на CP-1251 (подозреваю, что и все остальные на платформе Windows действуют аналогично). Таким образом, через данный мод потоки в виде UTF-8 и CP-1251 никак не совместить - что-нибудь одно обязательно будет с крякозябрами.

digger®

Цитата: we1t от 08 января 2009, 00:25:33
Таким образом, через данный мод потоки в виде UTF-8 и CP-1251 никак не совместить - что-нибудь одно обязательно будет с крякозябрами.
Можно определять кодировку потока и в зависимости от нее декодировать.