Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die 8-Bit-Konsolenfunktionen verwenden die OEM-Codeseite. Alle anderen Funktionen verwenden standardmäßig die ANSI-Codeseite. Dies bedeutet, dass von den Konsolenfunktionen zurückgegebene Zeichenfolgen möglicherweise nicht ordnungsgemäß von den anderen Funktionen verarbeitet werden und umgekehrt. Wenn FindFirstFileA beispielsweise eine Zeichenfolge zurückgibt, die bestimmte erweiterte ANSI-Zeichen enthält, zeigt WriteConsoleA die Zeichenfolge nicht ordnungsgemäß an.
Die beste langfristige Lösung für eine Konsolenanwendung ist die Verwendung von Unicode. Die Konsole akzeptiert die UTF-16-Codierung für die W-Variante der APIs oder UTF-8-Codierung für die A-Variante der APIs, nachdem SetConsoleCP und SetConsoleOutputCP für 65001 die UTF-8-Codeseite verwendetCP_UTF8 wurden.
Wenn Sie diese Lösung ausführen, sollte eine Konsolenanwendung die SetFileApisToOEM-Funktion verwenden. Diese Funktion ändert relevante Dateifunktionen, sodass sie OEM-Zeichensatzzeichenfolgen anstelle von ANSI-Zeichensatzzeichenfolgen erzeugen.
Im Folgenden sind Dateifunktionen aufgeführt:
CopyFile-
CreateDirectory-
CreateFile-
CreateProcess-
DeleteFile-
FindFirstFile
FindNextFile-
GetCurrentDirectory-
GetDiskFreeSpace-
GetDriveType
Bei der Verwendung von Befehlszeilen sollte eine Konsolenanwendung die Befehlszeile in Unicode-Formular abrufen und in OEM-Formular konvertieren, wobei die relevanten Zeichen-zu-OEM-Funktionen verwendet werden. Beachten Sie auch, dass die Argv den ANSI-Zeichensatz verwendet.