Entwickler-Ecke

Sonstiges (FPC / Lazarus) / Linux API - Lazarus und das leidige Problem mit deutschen Umlauten!


galagher - Mi 31.03.21 19:29
Titel: Lazarus und das leidige Problem mit deutschen Umlauten!
Hallo!

Ich verzweifle noch mit Lazarus! Da dachte ich vor Monaten schon, ich hätte das Problem mit den Umlauten gelöst, und jetzt doch nicht.
Da wird doch glatt bei dieser Anweisung in einer anderen Unit:

Delphi-Quelltext
1:
ShowMessage('Anwendung wird bereits ausgeführt.');                    

... dies hier angezeigt:

Delphi-Quelltext
1:
Anwendung wird bereits ausgef?hrt.                    


Warum gibt es bei Lazarus denn solche Probleme mit deutschen Umlauten?

Wenn ich die Anweisung ShowMessage('Anwendung wird bereits ausgeführt.') in Unit1 einfüge und speichere, steht dort:

Delphi-Quelltext
1:
ShowMessage('Anwendung wird bereits ausgeführt.');                    


Wie kriege ich das denn ein für alle Mal so gelöst, dass Lazarus deutsche Umlaute automatisch richtig erkennt, so wie Delphi das ja auch selbstverständlich kann?


ub60 - Mi 31.03.21 21:51

Lazarus benötigt Dateien im UTF8-Format. Vermutlich hast Du eine Unit in einem anderen Format (UTF16, Ansi, ???).
Du musst die Datei im UTF8-Format speichern, dann sollte es gehen.
Entweder mit einem externen Editor oder über den Menüpunkt "Werkzeuge/Kodierung von Projekten/Packages umwandeln".

ub60


galagher - Do 01.04.21 09:19

Ich habe die pas-Datei, die diese Anweisung enthält, unter Delphi erstellt und dann für Lazarus übernommen. Da die Datei zu keinem Package und zu keinem Projekt gehört, klappt es mit der von dir beschriebenen Vorgehensweise nicht: Man kann keine einzelnen Dateien konvertieren.

Mit einem externen Editor? Bleibt also nichts anderes übrig, als alle Umlaute und das ß manuell zu ändern, also eben "ü" zu "ü"?

Könnte man ja ein Prpgramm dafür basteln...


galagher - Do 01.04.21 09:39

user profile icongalagher hat folgendes geschrieben Zum zitierten Posting springen:
Bleibt also nichts anderes übrig, als alle Umlaute und das ß manuell zu ändern, also eben "ü" zu "ü"?

Könnte man ja ein Prpgramm dafür basteln...
Muss man gar nicht! Lazarus bringt das schon mit: Irgendwo im geöffneten Fenster der Datei einen Mausklick mit rechter Maustaste, dann im Popupmenü auf "Dateieinstellungen/Zeichenkodierung/UTF8" klicken. Mit "Datei ändern" bestätigen.

Muss man das dann jedesmal bei jeder nicht mit Lazarus erstellten Datei durchführen?


Gausi - Do 01.04.21 10:20

user profile icongalagher hat folgendes geschrieben Zum zitierten Posting springen:
Mit einem externen Editor? Bleibt also nichts anderes übrig, als alle Umlaute und das ß manuell zu ändern, also eben "ü" zu "ü"?

Bitte nicht so. Wenn man explizit mit einem Texteditor manuell eine UTF-Kodierung schreibt, dann kommt am Ende wahrscheinlich nur Blödsinn raus. :lol:

Mit externem Editor ist eher sowas wie Notepad++ gemeint. Damit kann man die Kodierung einer Textdatei mit einem Klick ändern. Lazarus scheint das auch zu können, und auch die neueren Delphi-Versionen können mit einem Klick eine pas-Datei von Ansi auf UTF8 wechseln. In der aktuellen Delphi CE gibt es unten im Quelltext-Editor in der Statusleiste ein Feld dafür. Normal steht da "ANSI", und per Klick kann man das auf UTF-8 ändern. Dann sollte auch Lazarus damit direkt klarkommen.


galagher - Do 01.04.21 10:29

user profile iconGausi hat folgendes geschrieben Zum zitierten Posting springen:
In der aktuellen Delphi CE gibt es unten im Quelltext-Editor in der Statusleiste ein Feld dafür. Normal steht da "ANSI", und per Klick kann man das auf UTF-8 ändern. Dann sollte auch Lazarus damit direkt klarkommen.
Ich sehe mir das alles genau an und werde insbesondere Lazarus genau testen, bei Delphi klappte es ja von Anfang an.

Lazarus ist sicher eine brauchbare Alternative zu Delphi, aber eine gute? :?


ub60 - Do 01.04.21 15:18

Ich nehme für solche Umwandlungen meist PSPad (pspad.com). Da sieht das dann so aus:
codierung

ub60


galagher - Do 01.04.21 15:45

user profile iconub60 hat folgendes geschrieben Zum zitierten Posting springen:
Ich nehme für solche Umwandlungen meist PSPad (pspad.com).
Im Prinzip ist das bei Lazarus auch so. Damit funktioniert es dann.