Zeichensätz DOS - Windows

  • Hallo,
    Die DOS Konsole meines Win2000 Rechners arbeitet mit dem erweiterten ASCII Zeichensatz, Zeichentabelle 437.
    Notepad arbeitet mit dem ANSI Zeichensatz - wenn ichs recht analysiert habe -, der für die Zeichen Nummern 32 bis 127 mit dem ASCII übereinstimmt.
    Das hat zur Folge, daß mit Notepad abgespeicherte Umlaute, "ß", oder französische Zeichen wie "î", "é", "ù", also Zeichen die im ANSI Zeichensatz Nummern oberhalb von 160 belegen, auf der DOS Konsole "verfälscht" ausgegeben werden weil die beiden Zeichensätze ab 128 nicht mehr übereinstimmen. So wird zum Beispiel das "ü" (ANSI 252) zum "n" (ASCII437 252) wenn ich die entsprechende Datei etwa mit dem DOS Befehl "type <Name der Datei>" anzeige. Ärgerlicher wirds, wenn ich mit Notepad einen Quellcode erstelle, compiliere, ausführe ... Auch hier werden Zeichen oberhalb ANSI 160 "verfälscht" auf dem Monitor ausgeben. Nun gibt es in Programmiersprachen wie C - was mich augenblicklich beschäftigt - Funktionen wie etwa CharToOem() (wobei OEM für Original Equipement Manufacturer steht) und andere Wege hier im Einzelfall Abhilfe zu schaffen. Auf Dauer wird dies aber eher umständlich und die Lesbarkeit der Quelldatei leidet.
    Deshalb wende ich mich jetzt an Euch. Habt Ihr vielleicht einen Tip, wie ich ein für alle Mal hier eine grundsätzliche Lösung finden kann. Vielen Dank.

  • Super Tip! Vielen herzlichen Dank. Habe meine Quelldatei mit Wordpad abgespeichert und mit dem BCC55 C Kompiler von Borland kompiliert. Das klappt wie geschmiert. Leider erlaubt mir die von mir bevorzugte Bloodshed Dev-C++ IDE, nicht meine Quelldateien im MS DOS format abzuspeichern. Aber hierfür werde ich mich dann möglicherweise besser ans C Forum wenden. Nochmals vielen Dank.

  • Hallo,
    Vielen Dank. Ich habe mir Context gerade runtergeladen und werde es mal ausprobieren.
    Ich habe auch im DOS Handbuch nachgeforscht wie ich die aktive Zeichentabelle ändern kann. Muß allerdings erst ausprobieren ob dies auch unter der Win2000 Konsole noch funktioniert. Das ganze würde aber nur Sinn machen, wenn ich die Tabellen Nummer des ANSI Zeichensatzes kenne - falls Du ne Ahnung hast?
    Mfg,
    Werner