jogisarge: UTF bei Dom XML

Hallo zusammen,

ich erzeuge per DOM XML ein XML-Dokument.
$doc = new DOMDocument('1.0','utf-8');
$doc->formatOutput = true;
$doc->loadXML($file);
$file = $doc->saveXML();

Dieses erzeugte $file schicke ich dann an einen Server.
Der Server erwartet im head
<?xml version="1.0"?>
eigentlich das
<?xml version="1.0" encoding="UTF-8"?>

Ich dachte durch new DOMDocument('1.0','utf-8'); erreiche ich das, aber wenn ich mir mein XML-File $file anschaue, dann steht nur <?xml version="1.0"?> drin.

wie kann ich das erreichen, dass in meinem xml file das
<?xml version="1.0" encoding="UTF-8"?> drin steht ?

gruß jogi

  1. Hallo,

    $doc = new DOMDocument('1.0','utf-8');

    Führt bei mir (PHP 5.2.6RC4) bei der Serialisierung zu:
    <?xml version="1.0" encoding="UTF-8"?>

    Ich dachte durch new DOMDocument('1.0','utf-8'); erreiche ich das

    Sollte eigentlich, ja.

    aber wenn ich mir mein XML-File $file anschaue, dann steht nur <?xml version="1.0"?> drin.

    UTF-8 ist die Standardkodierung, wenn keine encoding angegeben ist, ist UTF-8 die Kodierung des Dokuments (Byte-Order Mark mal außen vor). Also sollte eigentlich die Site, an die du den Code schickst, UTF-8 vermuten. (Deswegen bindet deine PHP-Version vermutlich keine encoding ein, wenn sie ohnehin UTF-8 wäre.)

    wie kann ich das erreichen, dass in meinem xml file das
    <?xml version="1.0" encoding="UTF-8"?> drin steht ?

    Vermutlich gar nicht über das DOM-Modul. Also nach dem Serialisieren zu einem String mit str_replace.

    Mathias

  2. Hi,

    $doc = new DOMDocument('1.0','utf-8');

    Ich dachte durch new DOMDocument('1.0','utf-8'); erreiche ich das, aber wenn ich mir mein XML-File $file anschaue, dann steht nur <?xml version="1.0"?> drin.

    Wie sieht es aus, wenn du nach der Erzeugung noch mal ein
    $doc->encoding = 'utf-8';
    hinterherschiebst?

    (Nur ins Blaue geraten ...)

    MfG ChrisB

    --
    "The Internet: Technological marvel of marvels - but if you don't know *what* you're lookin' for on the Internet, it is nothing but a time-sucking vortex from hell."