Zeichenkodierung in Konsolenanwendung

Für alles, was in den übrigen Lazarusthemen keinen Platz, aber mit Lazarus zutun hat.
Antworten
Kay
Beiträge: 134
Registriert: So 14. Nov 2010, 15:17

Zeichenkodierung in Konsolenanwendung

Beitrag von Kay »

Hallo,

ich habe folgendes Problem mit der Zeichenkodierung:
Ich habe ein Programm gebastelt, das auf der Kommandozeile (Eingabeaufforderung) unter Windows ausgeführt werden soll.
Mit dem Befehl "WriteLn()" gebe ich die Hinweistexte oder Fehlermeldungen aus. Dabei werden allerdings die Umlaute nicht korrekt angezeigt. UTF8ToAnsi bringt mich auch nicht weiter. Wie muss ich denn die Strings umkodieren?

Vielen Dank und viele Grüße
Kay

Socke
Lazarusforum e. V.
Beiträge: 3178
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: Zeichenkodierung in Konsolenanwendung

Beitrag von Socke »

Kay hat geschrieben:Mit dem Befehl "WriteLn()" gebe ich die Hinweistexte oder Fehlermeldungen aus. Dabei werden allerdings die Umlaute nicht korrekt angezeigt. UTF8ToAnsi bringt mich auch nicht weiter. Wie muss ich denn die Strings umkodieren?
Versuchs mal mit UTF8ToSys().

Edit: Die Windows-Console verwendet per Standard (bei einem deutschen Windows) die Codepage 850 (DOS); ANSI entspricht eher Codepage 1252 (Windows-1252). Die UTF-8-Codepage ist 65001.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

Kay
Beiträge: 134
Registriert: So 14. Nov 2010, 15:17

Re: Zeichenkodierung in Konsolenanwendung

Beitrag von Kay »

Hallo,

also ich hab das gerade mal mit UTF8ToSys probiert, das Ergebnis ist das gleiche wie bei UTF8ToAnsi. Möglicherweise ruft die eine Funktion die andere auf, bringt mir also leider nichts. Hattest du das bei dir getestet?

Viele Grüße
Kay

Benutzeravatar
theo
Beiträge: 11007
Registriert: Mo 11. Sep 2006, 19:01

Re: Zeichenkodierung in Konsolenanwendung

Beitrag von theo »

Welche Kodierung hat denn deine Quelldatei?

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Re: Zeichenkodierung in Konsolenanwendung

Beitrag von Christian »

Glaub utf8toconsole wars
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Benutzeravatar
theo
Beiträge: 11007
Registriert: Mo 11. Sep 2006, 19:01

Re: Zeichenkodierung in Konsolenanwendung

Beitrag von theo »

Oder muss man bei einer Konsolenanwendung noch cwstring extra einbinden? Weiss ich nicht mehr so genau.

Uses cwstring

Kay
Beiträge: 134
Registriert: So 14. Nov 2010, 15:17

Re: Zeichenkodierung in Konsolenanwendung

Beitrag von Kay »

Hallo,

ich wollte mich nur kurz melden und sagen, dass ich's hinbekommen habe. Die Lösung war die Funktion UTF8ToConsole().

Vielen Dank nochmal für den Tipp und viele Grüße
Kay

BeniBela
Beiträge: 322
Registriert: Sa 21. Mär 2009, 17:31
OS, Lazarus, FPC: Linux (Lazarus SVN, FPC 2.4)
CPU-Target: 64 Bit

Re: Zeichenkodierung in Konsolenanwendung

Beitrag von BeniBela »

Kay hat geschrieben:Die Lösung war die Funktion UTF8ToConsole().
In fileutil

Und das ruft CharToOem, von der Microsoft schreibt, man solle es nicht mehr verwenden :(

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Re: Zeichenkodierung in Konsolenanwendung

Beitrag von Christian »

Microsoft schafft das winapi eh ab warum sollte man also auf die pappnasen hören. Entweder sie rudern bald wieder zurück oder si verlieren massiv marktanteile. Oder ich irr mich und in 10 jahren gibts nur noch sponsored apps.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Antworten