2012-03-07 1 views
0

Я использую SimplePie для разбора RSS-канал, и я получаю следующий результат:SimplePie RSS Parser - Кодирование и Weird символы даже на UTF-8

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 и я также: <meta charset="charset=utf-8">

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

Любые идеи?

ответ

1

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

Удачи.

2

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

<?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/'); 
?> 

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