# that contains invalid UTF-8 sequences. Convert
# feed to ascii to try to work around.
$feed->{message}.=" ".sprintf(gettext("(invalid UTF-8 stripped from feed)"));
- $content=Encode::decode_utf8($content);
+ $content=Encode::decode_utf8($content, 0);
$f=eval{XML::Feed->parse(\$content)};
}
if ($@) {
# Another possibility is badly escaped entities.
$feed->{message}.=" ".sprintf(gettext("(feed entities escaped)"));
$content=~s/\&(?!amp)(\w+);/&$1;/g;
- $content=Encode::decode_utf8($content);
+ $content=Encode::decode_utf8($content, 0);
$f=eval{XML::Feed->parse(\$content)};
}
if ($@) {
* Add rel=nofollow to edit links. This may prevent some spiders from
pounding on the cgi following edit links.
+ * When calling decode_utf8 on known-problimatic content in aggregate,
+ explicitly pass 0 (FB_DEFAULT) as the second parameter. Apparently perl
+ 5.8 needs this to avoid crashing on malformed utf-8, despite its docs
+ saying it is the default.
-- Joey Hess <joeyh@debian.org> Wed, 28 May 2008 03:07:37 -0400