Da das Konvertieren ganzer Verzeichnisstrukturen in eine andere Codierung für Windows-Nutzer recht umständlich, aufwendig und/oder sogar kostenpflichtig ist, hier mal eine (nicht besonders elegante, aber funktionierende) Variante für die Windows PowerShell, deren Funktionsweise ich an folgendem Beispiel demonstrieren möchte:

Der Ordner Website enthält .php- und .tpl-Dateien, die nach UTF-8 konvertiert werden sollen.

Da das Skript leider keine Verzeichnisse erstellen und eine Datei nicht gleichzeitig gelesen und geschrieben werden kann, brauchen wir die Dateien in doppelter Ausführung: C:\Website\ (enthält die Originale) und C:\neu\Website (diese werden mit den neuen Dateien überschrieben)

Nun starten wir die PowerShell, wechseln ins Verzeichnis C:\Website\ und führen folgenden Code aus: Get-ChildItem . -include *.php,*.tpl -Recurse | foreach {get-content $_ | out-file -filePath $_.fullname.insert(2, "\neu\") -encoding "UTF8" -force}

Nach dem Parameter -include werden die zu ändernden Dateien angegeben. Wichtig ist, dass die Argumente von $_.fullname.insert() angepasst werden, wenn man das Skript z.B. auf dem Desktop ausführt.

Ich weiß, dass das jetzt noch nicht vollendete Programmierkunst ist, aber ich denke als Ansatz sollte es reichen. Ich bin aber trotzdem für Anregungen dankbar und werde auch versuchen Fragen zubeantworten.