Axel Richter: XML PHP Entities Umlaute echo save

Beitrag lesen

Hallo,

in welcher Codierung ist deine ursprüngliche PHP-Datei gespeichert? Etwa in UTF-8? Das würde bedeuten, dass die Bytefolge 'Ü' schon (korrekterweise) so im Script steht. PHP tut dann nichts weiter als Byte für Byte exakt wiederzugeben und hinterher den so erzeugten String, von dem du behauptest, er sei ISO-8859-1, unverändert auszugeben. Dann ist das Verhalten korrekt.

Hm, schau Dir nochmal das PHP-Script in https://forum.selfhtml.org/?t=130693&m=844996 an. Das ist _ein_ Script, welches _ein_ Dokument mit drei echo-Anweisungen an den Browser ausgibt. In zwei dieser echo-Anweisungen wird ein "Ü" korrekt in ISO-8859-x kodiert erzeugt. Nur die Anweisung:

echo $doc->documentElement->nodeValue;

erzeugt ein UTF-8-"Ü".

Als Lösung würde ich vorschlagen, entweder ALLES konsequent in UTF-8 zu halten,

ACK

oder eben ALLES (auch das Script selbst!) in ISO-8859-1.

Ja und dann eben:

echo utf8_decode($doc->documentElement->nodeValue);

für alle XML-DOM-Funktionen, die offensichtlich UTF-8 zurückliefern.

viele Grüße

Axel