dedlfix: Probleme Zeichenkodierung bei XML-Import mit Simplexml_load_file

Beitrag lesen

echo $begrüßung;

Wenn ich die XML-Datei mit dem Texteditor local öffne, werden Sonderzeichen uncodiert angezeigt (äöü).

Alle Zeichen müssen zunächst aus ihrer Byte-Form dekodiert werden, bevor das System dazu einen passenden Krakel anzeigen kann.

Die Stelle, die bei SimpleXML einen Fehler erzeugt wird folgendermaßen angezeigt: "etwa 170 C (vorgeheizt) Heissluft: 150-160 C (nicht"

Was heißt das nun? Dass die Grad-Zeichen ° fehlen?

Auf dem Server geuploaded und mit SimpleXML aufgerufen erscheint folgender Fehler:
Warning: fopen(letztertest.cml) [function.fopen]: failed to open stream: No such file or directory in /var/www/web122/html/muttis-kochkunst-de/index.php on line 14

Das hat ja wohl nichts mit SimpleXML zu tun, wenn eine Datei nicht gefunden werden kann.

Warning: simplexml_load_file() [function.simplexml-load-file]: neu.cml:948: parser error : Input is not proper UTF-8, indicate encoding ! Bytes: 0xFF 0xFF 0xFF 0xFF in /var/www/web122/html/muttis-kochkunst-de/index.php on line 20

Entweder ist die XML-Datei als UTF-8 ausgezeichnet und stattdessen ISO-8859-1 oder anders gespeichert, oder letzeres ohne irgend eine encoding-Angabe, dann gilt per Default UTF-8, was sich dann ebenfalls beißt. Oder es ist noch irgendwas ganz anderes, das man als Außenstehender nur mit hellsehereischen Fähigkeiten erkennen kann.

Wie kann ich die XML-Datei auf UTF8 codieren?

Jeder moderne Editor kann das (vorzugsweise beim Speichern). Wenn er es nicht kann, ist er nicht modern. :-)

Mit welchem Modus muß die Datei übertragen werden (binär oder text)?

In den meisten Fällen kann man bei FTP bedenkenlos zu binär greifen. ASCII bzw. Text versucht Zeilenendeschaltungen zwischen unterschiedlichen Systemen anzupassen.

Hat jemand nen Lösungsansatz für mich?

Kodierungsangaben richtig setzen, sonst kann der Empfänger nicht wissen, was er da vorgesetzt bekommt.
Wenn du dir über den Inhalt einer Datei nicht sicher bist, kannst man sie im Hex-Editor öffnen und sich die Bytewerte ansehen und mit den bekannten Kodierungstabellen vergleichen.
Alternativ die Datei im Browser öffnen, unter Ansicht->(Zeichen)kodierung solange umstelen, bis der Browser die Datei richtig dekodieren kann. Dann kann man mit relativ hoher Wahrscheinlichkeit sagen, welche Kodierung vorliegt.

echo "$verabschiedung $name";