UTF bei Dom XML
jogisarge
- php
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
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
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