Du musst Dich erst einmal mit der Problematik des Codierens von Textdateien vertraut machen
Nur irgend wo hinschreiben, "die folgende datei ist so und so codiert" bringt natürlich nix, wenn sie das nicht tatsächlich auch ist
Im wiki steht dazu einiges:
[wiki]Von Umlauten, Unicode und Encodings[/wiki]
Dazu würde ich mir die Folien von Leonidas mal zu Gemüte führen, die haben mir damals unheimlich geholfen, diese ganze Problematik zu verstehen:
[wiki]User Group München[/wiki]?action=AttachFile&do=view&target=unicode-folien.pdf
Nach dieser Lektüre sollte Dir vieles klarer sein!
Ich benutze übirgens immer "utf-8" als encoding. Imho ein guter Weg, um auch Umlaute usw. in Strings im Code untezubringen, ohne sich um irgend welche Eventualitäten Sorgen zu müssen.
Ansonsten habe ich seitdem den Ratschlag befolgt, in einem Script intern immer mit Unicode zu arbeiten und das De- bzw. Encodieren immer so früh bzw. so spät wie möglich zu machen. Also z.B. beim Einlesen von Dateien gleich zu decodieren und erst beim Speichern zu encodieren.