convert charset for console/de
From Lazarus wiki
Jump to navigationJump to search
│
Deutsch (de) │
Zurück zur Konsolenseite.
Den Zeichensatz für die Ausgabe an der Konsole anpassen
Dieser Artikel beschäftigt sich mit der Windowsprogrammierung.
Falls Ihr Konsolenprogramm unter Windows Ansi-Text mit Umlauten und Sonderzeichen korrekt ausgeben soll, dann müssen Sie den Ansi-Text in den OEM-Zeichensatz konvertieren.
Unter Linux (Ubuntu) ist eine Konvertierung des Zeichensatzes nicht notwendig.
program project1;
{$mode objfpc}{$H+}
{$IMPLICITEXCEPTIONS OFF}
uses
Windows;
var
strText: string;
// Diese Funktion übersetzt den Inhalt eines Ansistrings
// in den Zeichensatz der Konsole
function funAnsiZuOEM(strUebergabe: string): string;
begin
// Ab Lazarus 1.2.0 muss der folgende Absatz eingefügt werden:
strUebergabe := Utf8ToAnsi(strUebergabe);
// Bis Lazarus 1.0.14 genügte dieser Teil:
strUebergabe := strUebergabe + #0;
CharToOEM(PChar(strUebergabe), @strUebergabe[1]);
Delete(strUebergabe, Length(strUebergabe), 1);
Result := strUebergabe;
end;
begin
strText := 'Rosé und Tölt';
writeln('Ausgabe: ' + funAnsiZuOEM(strText));
end.