SimplePie RSS Parser - Кодировка и странные символы даже на UTF-8 - PullRequest
0 голосов
/ 07 марта 2012

Я использую SimplePie для разбора RSS-канала и получаю следующий вывод:

Don't forget our "Spot It, Post It" .....

Мой код:

<?php
header('Content-type:text/html; charset=utf-8');
require_once('rss/simplepie.inc');

// We'll process this feed with all of the default options.
$feed = new SimplePie();

// Set which feed to process.
$feed->set_feed_url('FeedURL');
$feed->enable_cache(true);  
$feed->set_cache_duration(3600);  
$feed->set_cache_location('cache');
$feed->init();  
$feed->handle_content_type();  
?>

Я использую HTML5 Doctype ANDУ меня также есть: <meta charset="charset=utf-8">

Я посмотрел его, и все говорит об изменении кодировки на UTF-8, который у меня явно есть ... поэтому я не слишком уверен, что еще вызывает это.

Есть идеи?

Ответы [ 2 ]

2 голосов
/ 22 мая 2012

Я не знаю, удалось ли вам это исправить, но подумал, что поделюсь своим решением со всеми, кто ищет. У меня была та же проблема - персонажи были «испорчены» в ленте. Мой код изначально (с проблемой) был:

<?php 
include_once $_SERVER['DOCUMENT_ROOT'] . '/inc/simplepie.inc'; 
$feed = new SimplePie('http://domain.wordpress.com/feed/');
?>

Видя пост выше, я попытался добавить следующий заголовок, и это сработало!

<?php 
header('Content-type:text/html; charset=utf-8');
include_once $_SERVER['DOCUMENT_ROOT'] . '/inc/simplepie.inc'; 
$feed = new SimplePie('http://domain.wordpress.com/feed/');
?>

Надеюсь, это поможет кому-то еще испытать те же проблемы.

1 голос
/ 08 марта 2012

Это происходит с каждым кормом?Или только один конкретный канал?Это может быть сам канал.Вы можете использовать $ item-> get_content () и просматривать содержимое канала напрямую, если само описание оказывается проблематичным.Иногда необходимо выполнить обработку информации из ленты или веб-API, есть код PHP и примеры для удаления и замены символов, в демонстрационной версии News Blocks 2.0 на сайте SimplePie есть некоторый код очистки, который я часто использовал в последнее время.

Удачи.

...