Wie der Browser mit einem
ä umgeht, hat mit Deinem Perl-Code gar nichts zu tun.
decode_entities benützt
kein Ausgabe-Encoding. Es konvertiert HTML-Entities in entsprechende Perl-Characters. Wie Perl die intern speichert, spielt keine Rolle.
Ich muss auf den Titel Deiner Ursprungsbeschwerde zurückkommen:
QuoteHTML::Entities - decode_entities() erzeugt kein Unicode sondern Latin1
Das weist darauf hin, dass Du die Begriffe "Unicode" und "UTF-8" verwechselst. Latin1 und UTF-8 sind Encodings, Unicode
nicht. HTML::Entities::decode_entities liefert, wie dokumentiert, Unicode-Characters.
Characters, nicht irgendwie encodierte Bytes. Ein decodiertes
ä wird zu einem
ä, und solange das den Perl-Code nicht verläßt, musst Du dich um ein Encoding auch nicht kümmern.