8086 Assembler (MS-DOS):
Probleme mit nicht nur deutschen Umlauten zwischen Windows und MSDOS

Hinweis: Auf dieser Seite sind eigene Beobachtungen zusammengefasst. Wirklich befriedigend sind die gewonnenen Erkenntnisse nicht!

Hinsichtlich des auf dieser Webseite verwendeten Begriffes BOM gibt es einen Artikel in der deutschen Wikipedia (Abruf 18.3.2023).

VISTA 32-bit:
Microsoft liefert bei VISTA 32-bit einen deutschen 16-Bit-Tastaturtreiber mit. Um ihn zu nutzen, muss man in der Datei %SystemRoot%\system32\autoexec.nt eintragen:
LH KB16 GR,,%SystemRoot%\system32\keyboard.sys

Unter Vista in der 32-bit-Variante kann man als Kommandooberfläche wahlweise COMMAND.COM oder CMD.EXE verwenden.

4DOS ist eine komfortable Alternative zu COMMAND.COM und CMD.EXE. Allerdings werden von 4DOS unter XP, VISTA und wohl auch Windows 7 die langen Dateinamen im Konsolmodus verkürzt angezeigt. 4DOS 7.50 und sein Nachfolger 4dos 8.00 sind Freeware und lassen sich aus dem Internet herabladen.

Vom gleichen Hersteller wie 4DOS kommt „Take Command®”. Dessen Freeware-Version Take Command/LE ― auch TCC LE genannt ― bietet den Benutzungskomfort von 4DOS und kommt mit langen Dateinamen zurecht. Das Programm ist für Windows XP und seine Nachfolger zumindest bis einschließlich Windows 10 geeignet.

Unter VISTA in der 32-bit-Variante ist es mir durch Anpassen der Codepage unter TCC LE und COMMAND.COM nicht gelungen, die deutschen Umlaute zwischen grafischer Darstellung (Im Windowsmodus) und Konsolmodus (im MSDOS-Fenster) gleichartig dargzuestellen.

Gelungen ist es in VISTA allerdings durch Nutzung der Kommandooberfläche CMD.EXE. Sie muss dazu mit dem Schalter /U aufgerufen werden. Dadurch wird die Verwendung des UNICODE-Format aktiviert.

Aufrufparameter für CMD.EXE
Die passende Codepage ist 1252
Die passende Codepage kann nach Start von CMD.EXE durch Absetzen des Kommandos chcp 1252 umgeschaltet werden. Das Kommando kann auch in der CMD.EXE-Startdatei CMDSTART.BAT eingetragen werden.

Es lässt sich auch chcp 65001 verwenden. Damit funktionieren zumindest bei mir die Batchscripte nicht mehr.

Hilfsdatei zum Testen
Um die Änderung auszuprobieren, kann man mit dem bei Windows mitgelieferten Editor NOTEPAD.EXE eine kleine Datei mit den zu überprüfenden Umlauten erzeugen. Wenn man beim Edieren mit NOTEPAD.EXE die ANSI-Codierung wählt, passt die Codepage 1252 lediglich unter CMD.EXE.
  • CMD.EXE chpt 1252 (Start mit /U)
  • NOTEPAD.EXE Speichercode ANSI
Das Ergebnis des Testlaufs im Konsolmodus: Es hat geklappt!

Windows XP:
Auch bei XP Version 5.1.26001 kann man als Kommandooberfläche wahlweise COMMAND.COM oder CMD.EXE verwenden. Wenn man beim Edieren mit NOTEPAD.EXE die Unicode-Codierung wählt, passt die Codepage 850. Damit funktionieren:
Windows 7 und Windows 8:
Ob das Verfahren auch bei Windows 7 und Windows 8 funktioniert, kann ich nicht ausprobieren, denn ich benutze beide Windows-Varianten nicht.
Windows 10 in der 64-bit-Variante:
Bei Windows 10 64-bit gibt es kein COMMAND.COM mehr. Wenn man beim Edieren mit NOTEPAD.EXE die Codes UTF-8 oder UTF-8 mit BOM wählt, dann funktioniert das unter Vista für die CMD.EXE beschriebene Verfahren mit einem Unterschied: Man muss die Codepage 16001 angeben; mit Codepage 1252 funktioniert es hier nicht.

Es wird jedoch empfohlen UTF-8 ohne BOM zu verwenden (Stand 2023).

Unter TCC LE Version 14 genügt es, das Kommando chcp 65001 abzusetzen

Windows 11:
Ob das Verfahren auch bei Windows 11 funktioniert, kann ich nicht ausprobieren, denn ich benutze Windows 11 nicht.
Letztes Upload: 24.03.2023 um 11:35:11 • Impressum und Datenschutzerklärung