Work around XML::Atom strangeness that results in double-encoded posts

See [[bugs/Aggregated_Atom_feeds_are_double-encoded]]. By default,
XML::Atom outputs strings of UTF-8 bytes with the Perl UTF8 flag stripped
off, which IkiWiki assumes to be Latin-1 and re-encodes as UTF-8 on
output. XML::Feed  does not currently (0.41-1) set the magic variable to
change this behaviour (I've filed a bug on CPAN), but IkiWiki can
usefully set the same variable as a workaround.
master
Simon McVittie 2009-02-03 19:48:55 +00:00
parent 1b3dbe0b91
commit dd862b4639
1 changed files with 5 additions and 0 deletions

View File

@ -534,6 +534,11 @@ sub aggregate (@) {
}
foreach my $entry ($f->entries) {
# XML::Feed doesn't work around XML::Atom's bizarre
# API, so we will. Real unicode strings? Yes please.
# See [[bugs/Aggregated_Atom_feeds_are_double-encoded]]
local $XML::Atom::ForceUnicode = 1;
my $c=$entry->content;
# atom feeds may have no content, only a summary
if (! defined $c && ref $entry->summary) {