André Laugks: PHP-Domtree in Datei schreiben/lesen Charsetprobleme

Beitrag lesen

Hallo!

DomDocument->dump_file macht das zwar grundsätzlich, aber leider werden Sonderzeichen (äöüß...) in Entities gewandelt, und beim Einlesen mit domxml_open_file()  nicht rückgewandelt.

Der XML-Parser (libxml2) ist für das umwandeln verantwortlich. Der wandelt es aber in UTF-8 und nicht in HTML-Entities. Du darfst auch nicht vergessen, daß die DOMXML-Erweiterung noch ganz schön Beta ist.

IMHO reagieren DOMXML von PHP Version zu PHP Version unterschiedlich..., kann sein, glaube ich. Und unter Linux anders als unter Windows.

Da dump_file() keinen Charset Parameter kennt habe ich probiert mit dum_mem() und ISO-8859-1 bzw. UTF-8 als Charset zu arbeiten.

Damit hatte ich auch noch kein Erfolg.

Bei ISO-8859-1 gibt es schon beim schreiben einen Fehler, bei UTF-8 beim Lesen. Die Daten im Domtree müssten eigentlich als ISO-8859-1 vorliegen (d.h. kennt der Domtree intern überhaupt ein Charset ?).

Ist ISO-8859-1 Voraussetzung? Wenn nicht, kannst Du alle Strings/Zeichen in von nach UTF-8 encodieren und beim Auslesen alle Strings/Zeichen nach ISO-8859-1 decodieren.

http://www.php.net/manual/de/function.utf8-decode.php
http://www.php.net/manual/de/function.utf8-encode.php

Wenn Du die XML-Datei mit XSLT darstellen möchtest, ist UTF-8 so und so kein Problem.

MfG, André Laugks

--
L-Andre @ gmx.de