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