Michael Bischof wrote: > für die Anfängerveranstaltung sammle ich weiteres Material. Hier nun > folgendes Problem: > eine Textdatei beispiel.txt ist unter utf-8 gespeichert. Sie enthält viele > Sonderzeichen. > > Wenn ich in kwrite auf "Datei öffnen" gehe kann ich rechts oben im Fenster > die encodings leicht auswählen. > > Wie würde das unter Windwos zu machen sein? Weiß das Jemand?
Das geht unter Windows genau wie unter Linux. Man nutzt die Fähigkeiten, die der verwendete Editor hat. Ist der verwendete Editor zufällig Notepad, kann man in der Auswahlbox, die man per "Datei / Öffnen..." bekommt, die Kodierung einstellen. Es wird vermutlich auch für Windows Editoren geben, bei denen man das Encoding der geladenen Datei - wie in kwrite - nachträglich noch umstellen kann. > - Das > Einzige, was mir bekannt ist: automatisch geht es nicht, auch unter Linux > nicht. Das verwendete Encoding einer Datei automatisch zu erkennen, ist schwierieg bis unmöglich. Man erinnere sich nur an die Diskussionen, die in letzter Zeit schon zweimal hier gefürt wurden, bei denen es darum ging, daß "der Browser Umlaute falsch darstellt". Auch wenn die Beteiligten in diesen Fällen Webbrowser und Webserver waren, ist das grundlegende Problem jedoch das selbe: Ein Computer kann nun mal mit Buchstaben (oder allgemeiner: Zeichen) nichts anfangen. Eine "Textdatei" unterscheidet sich nicht prinzipiell von jeder anderen Datei, z. B. einer "Programmdatei" oder einer Datei mit "Binärdaten", sondern enthält einfach nur eine Folge von Bytes. Sie wird erst dadurch zur "Textdatei", daß wir sie an ein Programm verfüttern (z. B. einen Editor), welches diese Bytefolge als Folge von Nummern, denen Buchstaben zugeordnet sind, interpretiert und entsprechend darstellt. Wie aus der Bytefolge eine Nummernfolge erzeugt wird und welcher Nummer letztlich welches Zeichen zugeordnet wird, dafür gibt es endlos viele Möglichkeiten - die verschiedenen Encodings. Welches Encoding beim Erzeugen der Datei verwendet wurde, kann man i. a. der resultierenden Bytefolge nicht ansehen. Man kann normalerweise bestenfalls raten. Ein paar Ausnahmen gibt es dann doch, bspw.: - Aufgrund der Struktur von UTF-8-Files kannst Du möglicherweise zu dem sicheren Schluß kommen: "Das ist kein korrektes UTF-8". - Eine Datei, die mindestens ein Byte mit einem Wert von >= 128 enthält, kann kein US-ASCII sein. - IIRC erzeugt z. B. Notepad, wenn man beim Speichern UTF-8 oder UTF-16 auswählt, sogenannte Byte Order Marks (BOM) am Dateianfang, anhand derer man beim Einlesen das Encoding wieder feststellen kann. Gruß mks -- ---------------------------------------------------------------------------- PUG - Penguin User Group Wiesbaden - http://www.pug.org

