Schon mehrmals bin ich auf das Problem gestossen, das irgendwelche Dateien nicht die korrekte Charakterencoding besitzen. Zum Beispiel wenn ich eine Batch Datei auf einem Windows System schreibe oder ein Konsolenprogramm (Windows) irgendwelche Dateien einliest: Die Windows Console benutzt die von DOS her bekannte Characterencoding CP850. Windows hingegeben benuzt CP1252. Diese beiden Zeichensätze haben die in der deutschen Sprache wichtigen Umlaute wie ä, ö oder ü an verschiedenen Positionen. Ein Batch welcher auf einen Ordner mit Umlauten zugreift, funktioniert somit nicht, wenn dieser in einem Windows Editor wie Notepad geschrieben wird. Da DOS das Zeichen ü (Windows Zeichensatz Hexadezimal FC) als hochgestellte 3 intepretiert (³, im DOS Zeichensatz an der Position FC) kann auf den gewünschten Ordner oder die gewünschte Datei nicht zugegriffen werden (“Das System kann die angegebene Datei nicht finden.”).
Eine Lösung ist dass die Datei nicht mit einem Windows Editor erstellt wird sondern mit dem Konsolenprogramm edit. Eine andere Möglichkeit ist die Datei unter Windows zu erstellen und in den richtigen Zeichensatz zu konvertieren. Dies erlaubt das vom GNU Project erstellte Programm iconv. Das GnuWin32 Projekt bietet für Windows kompilierte Binarys für diese Programm an. Mit folgendem Befehl kann dann eine Datei konvertiert werden:
> iconv.exe -f CP1252 -t CP850 test.bat > testnew.bat
Eine Liste der unterstüzten Zeichensätze lässt sich auch ausgeben:
> iconv.exe -l
0 Comments.