dedlfix: Probleme Zeichenkodierung bei XML-Import mit Simplexml_load_file

Beitrag lesen

echo $begrüßung;

Diese Hinweise helfen mir irgendwie gar nicht.

Du hast, so scheint es mir, einen Fehler vorliegen, den man nicht einfach so mit einer bestimmten Aktion wegbekommt. Deshalb kann ich dich nicht einfach so zum Ziel führen, weil ich selbst nicht sehe(n kann), was genau der Fehler ist. Ich kann dir deshalb nur Hinweise geben, in welcher Richtung du weiter tätig sein kannst.

Ich habe an der Codierung rumgestellt, die XML anders abgespeichert, in verschiedenen Modes hochgeladen.

Die FTP-Modi sind es nicht. Der Unterschied ist nur, dass binär die Daten unverändert hochlädt, ASCII die Zeilenenden beeinflusst. Dabei werden aber keine 0xFF-Bytes eingefügt, die wohl dein Problem sind.

[...] die Daten werden Cryptisch angezeigt: à la: Ãœberarbeitet für ... Was soviel heißt wie "überarbeitet für"

Das sind UTF-8-Zeichen, die als ISO-8859-1 interpretiert werden.

Wenn ich die Datei per FTP auf dem Server öffne ist diese ebenfalls cryptisch.

Der Begriff kryptisch bringt dir bei der Fehlersuche nichts. Versuche das Prinzip zu verstehen. Ansonsten kannst du nur solange rumstochern, bis es passt und hast am Ende noch nicht mal die Gewissheit, dass es auch in allen Fällen richtig ist.

Wie bekomm ich raus, welche Kodierung die XML online hat?

Es ist der falsche Weg, erst etwas irgendwie zu kodieren (auch wenn es unbewusst passiert) und dann herausfinden zu wollwn, wie es kodiert ist. Es ist technisch einfach nicht einwandfrei feststellbar, welche Kodierung vorliegt. Der einzige Weg ist, sich die Daten als Kodierung X zu lesen versuchen. Wenn dabei kein Fehler zu sehen ist, dann kann man davon ausgehen, dass Kodierung X vorliegt. Dazu muss man aber den Sinn des Inhalts verstehen und entscheiden können, ob ein dekodiertes Zeichen auch das richtige ist.

Wenn du den Text in einem Editor stehen hast, und alles ordentlich lesen kannst, dann speichere ihn in einer definierten Kodierung und Schreibe diese Angabe in alle relevanten Stellen, mit denen der Empfänger über die vorliegende Kodierung aufgeklärt wird. Bei XML ist das die encoding-Angabe im Vorspann. Und wenn diese Angabe mit der tatsächlich verwendeten Kodierung übereinstimmt, dann darf der Empfänger damit keine Probleme haben.

Ich bekomms einfach ne hin. Die XML-Datei ist ziemlich groß, deswegen kann ich sie nicht posten.

Das ist auch wenig sinnvoll, denn dabei können schon wieder Verluste auftreten, weil das hiesige System möglicherweise einige Zeichen nicht unverändert durchlässt.

Die Fehlermeldung deines ersten Postings erwähnte ein paar Bytes 0xFF. Diese scheinen mir fehlerhaft zu sein. Bist du sicher, dass sie zu den Nutzdaten gehören. Als ISO-8859-1 interpretiert ist das das Zeichen ÿ. Das kommt wohl kaum mehrfach hintereinander in Nutzdaten vor. Notfalls müsstest du dir einen Hexeditor hinzuziehen, und die Bytewerte der kritischen Stellen anschauen.

echo "$verabschiedung $name";