Hallo,
"Kodierung ausschalten" zum Beispiel ist nichts, das für PHP eine Bedeutung hätte.
Doch. Auch PHP hat Funktionen die mit kodierten Zeichen arbeiten. Z.B. die
mb_
Funktionen.
Ja, aber die Aussage passt als Widerspruch nicht zum zitierten Satz.
Im Übrigen ist das alles weder auf Perl noch auf PHP beschränkt. Es gilt allgemein, daß beim Speichern/Transport die Kodierung ausgeschaltet werden muss.
Nochmal: Es gibt kein "Codierung ausschalten". Man kann lediglich Daten nach einer bestimmten Codierung interpretieren, oder sie in eine andere Codierung überführen.
Beim Speichern in eine Datei oder beim Zurücklesen aus einer Datei passiert nichts dergleichen. Die Daten (Strings) werden Byte für Byte so, wie sie auch im Arbeitsspeicher vorliegen, gespeichert. Zumindest in PHP und in C ist das so. Bei diesem Vorgang spielt die Codierung, in der die Strings vorliegen oder interpretiert werden, keine Rolle. Entscheidend ist, dass der Dateiinhalt nach dem Zurücklesen wieder mit derselben Codierung betrachtet wird, denn beim reinen Speichern und Zurücklesen hat sich daran nichts verändert.
Henrys Problem ist, dass er anscheinend Strings, die in unterschiedlichen Codierungen vorliegen, in einer Textdatei zusammenführt. Ein gewöhnlicher Editor kann aber normalerweise nur eine einheitliche Codierung für den gesamten Dateiinhalt anwenden.
Also muss man untersuchen, wie es zu den unterschiedlichen Codierungen kommt. Dabei muss man im Zweifelsfall die gesamte Verarbeitungskette verfolgen. Man kann auch das entstandene Chaos (die verstümmelte Datei) auf Byte-Ebene anschauen (etwa als Hex-Dump) und versuchen zu erkennen, was man da tatsächlich hat. Daraus kann man unter Umständen Rückschlüsse ziehen, was wirklich passiert ist und so die Fehlersuche abkürzen und erleichtern.
Das ist eine meiner bevorzugten Debugging-Strategien: Sieh dir das vorliegende falsche Ergebnis an und versuche zu analysieren, wie es entstanden ist - also quasi vom Ende der Kette in Richtung Anfang.
So long,
Martin
Ich stamme aus Ironien, einem Land am sarkastischen Ozean.