From 33a3f2b4390821d6945905c5a287b8ded2e28135 Mon Sep 17 00:00:00 2001 From: Graham Knop Date: Fri, 9 Jan 2009 10:33:12 +0000 Subject: [PATCH] fixed: Syndicated Content corrupts wide characters --- docs/changelog/7.x.x.txt | 1 + lib/WebGUI/Asset/Wobject/SyndicatedContent.pm | 8 ++++++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/docs/changelog/7.x.x.txt b/docs/changelog/7.x.x.txt index 83736aba7..e0da97555 100644 --- a/docs/changelog/7.x.x.txt +++ b/docs/changelog/7.x.x.txt @@ -32,6 +32,7 @@ - fixed #9400: Form.captcha should be form_capcha in dataform help - fixed #9402: i18n confusion - fixed #9403: i18n survey + - fixed: Syndicated Content corrupts wide characters 7.6.7 - fixed #9263: Thingy possibleValues processing, and List type autodetection. diff --git a/lib/WebGUI/Asset/Wobject/SyndicatedContent.pm b/lib/WebGUI/Asset/Wobject/SyndicatedContent.pm index 86044323e..cf0a8fc20 100644 --- a/lib/WebGUI/Asset/Wobject/SyndicatedContent.pm +++ b/lib/WebGUI/Asset/Wobject/SyndicatedContent.pm @@ -143,10 +143,14 @@ sub generateFeed { my $cache = WebGUI::Cache->new($self->session, $url, "RSS"); my $value = $cache->get; unless ($value) { - $value = $cache->setByHTTP($url, $self->get("cacheTimeout")); + $value = $cache->setByHTTP($url, $self->get("cacheTimeout")); $newlyCached = 1; } - eval { $feed->merge($value) }; + utf8::downgrade($value); + eval { + my $singleFeed = XML::FeedPP->new($value, utf8_flag => 1); + $feed->merge($singleFeed); + }; if (my $e = WebGUI::Error->caught()) { $log->error("Syndicated Content asset (".$self->getId.") has a bad feed URL (".$url."). Failed with ".$e->message); }