Merge branch 'master' into dependency-types
[ikiwiki] / doc / bugs / Aggregated_Atom_feeds_are_double-encoded.mdwn
1 The Atom feed from <http://planet.collabora.co.uk/>
2 get "double-encoded" (UTF-8 is decoded as Latin-1 and re-encoded as
3 UTF-8) when aggregated with IkiWiki on Debian unstable. The RSS 1.0
4 and RSS 2.0 feeds from the same Planet are fine. All three files
5 are in fact correct UTF-8, but IkiWiki mis-parses the Atom.
6
7 This turns out to be a bug in XML::Feed, or (depending on your point
8 of view) XML::Feed failing to work around a design flaw in XML::Atom.
9 When parsing RSS it returns Unicode strings, but when parsing Atom
10 it delegates to XML::Atom's behaviour, which by default is to strip
11 the UTF8 flag from strings that it outputs; as a result, they're
12 interpreted by IkiWiki as byte sequences corresponding to the UTF-8
13 encoding. IkiWiki then treats these as if they were Latin-1 and
14 encodes them into UTF-8 for output.
15
16 I've filed a bug against XML::Feed on CPAN requesting that it sets
17 the right magical variable to change this behaviour. IkiWiki can
18 also apply the same workaround (and doing so should be harmless even
19 when XML::Feed is fixed); please consider merging my 'atom' branch,
20 which does so. --[[smcv]]
21
22 [[!tag patch done]]