Thema: Delphi Console: OEM nach ANSI

Einzelnen Beitrag anzeigen

Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#1

Console: OEM nach ANSI

  Alt 13. Jun 2010, 18:10
Hey,

ich lese die Ausgabe einer Konsolenanwendung mit Pipes aus und sende ebenso Eingaben an das Programm. Jetzt muss ich die ausgelesenen Daten von OEM nach ANSI konvertieren, damit Umlaute wie öäüß richtig dargestellt werden können. Momentan versuche ich das folgendermaßen:

Delphi-Quellcode:
function OEM2Ansi(OEMString: AnsiString): AnsiString;
begin
  OEMString := OEMString + #0;
  OemToChar(PAnsiChar(OEMString), @OEMString[1]);
  Delete(OEMString, Length(OEMString), 1);
  Result := OEMString;
end;
Leider hat die Funktion, wie es scheint, einfach komplett keine Wirkung auf meinen ausgelesenen AnsiString.
Das hier ist zum Beispiel einer der Problemkandidaten:
Zitat:
S 'dir'#$D#$A' Datentr„ger in Laufwerk C: ist BOOT'#$D#$A'
In die andere Richtung funktioniert es ebenfalls nicht. Wenn ich Ansi2OEM benutze und den String dann über die Pipe an die Konsole schicke, und z.b. einen Ordner namens "ötest" mit mkdir anlege, wird das ö zu irgendeinem komischen Zeichen konvertiert.

Kennt jemand eine Lösung für dieses Problem?

Viele Grüße
Zacherl
  Mit Zitat antworten Zitat