Thread Lib::XML, HTML::Entities, utf8, Perl5.6 vs Perl5.8 (11 answers)
Opened by esskar at 2005-04-07 08:37

esskar
 2005-04-07 08:37
#4756 #4756
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
Hi.
Mein Entwicklungssystem ist WinXP mit Perl5.8.6.
Die Productionsmaschine ist Linux mit Perl5.6.1.

Der Content-Charset ist 'utf8'.

Folgendes XML-File:
Code: (dl )
1
2
3
<?xml version="1.0" encoding="iso-8859-1"?>

<entry name="button_close">Schließen</entry>


Den Text 'Schließen' lese ich nun mit folgendem Code aus:
Code: (dl )
1
2
3
4
5
6
7
my $value = $node->textContent;
my $valueEnc = &HTML::Entities::encode_entities(
&XML::LibXML::encodeToUTF8(
$self->{xmldoc}->encoding,
$value
)
);


$self->{xmldoc}->encoding ist nun also 'iso-8859-1';
wenn ich mir nun den Output im Browser anschaue, sieht es wie folgt aus:

5.8 => Schlie&szlig;en (Browser: richtig)
5.6 => Schlie&Atilde;&ƒ&Acirc;&Ÿen (Browser: falsch)

lasse ich HTML::Entities::encode_entities weg, komme ich zu folgendem ergebnis:

5.8 => Schließen (Browser: falsch)
5.6 => Schließen (Browser: falsch)

Wo genau steckt den der Fehler und wie behebe ich das ganze?

View full thread Lib::XML, HTML::Entities, utf8, Perl5.6 vs Perl5.8