diff --git a/docs/changelog/7.x.x.txt b/docs/changelog/7.x.x.txt index 71d43003c..454f8e6f4 100644 --- a/docs/changelog/7.x.x.txt +++ b/docs/changelog/7.x.x.txt @@ -1,4 +1,5 @@ 7.6.11 + - fixed: Syndicated Content asset doesn't work with feeds that specify their encodings via HTTP headers 7.6.10 - fixed #9577: WebGUI::Form::Url::getValue returns blank rather than undef for blank fields diff --git a/lib/WebGUI/Asset/Wobject/SyndicatedContent.pm b/lib/WebGUI/Asset/Wobject/SyndicatedContent.pm index f3618bd23..d353cde91 100644 --- a/lib/WebGUI/Asset/Wobject/SyndicatedContent.pm +++ b/lib/WebGUI/Asset/Wobject/SyndicatedContent.pm @@ -146,7 +146,10 @@ sub generateFeed { $value = $cache->setByHTTP($url, $self->get("cacheTimeout")); $newlyCached = 1; } - utf8::downgrade($value); + # if the content can be downgraded, it is either valid latin1 or didn't have + # an HTTP Content-Encoding header. In the second case, XML::FeedPP will take + # care of any encoding specified in the XML prolog + utf8::downgrade($value, 1); eval { my $singleFeed = XML::FeedPP->new($value, utf8_flag => 1); $feed->merge($singleFeed);