UTF8

Für Fragen von Einsteigern und Programmieranfängern...
Benutzeravatar
juelin
Beiträge: 244
Registriert: Sa 24. Jul 2021, 18:03
OS, Lazarus, FPC: Linux Ubuntu 22. Windows 10 Delphi 11.3 (L 0.9.xy FPC 2.2.z)
CPU-Target: 64Bit
Wohnort: Mannheim

UTF8

Beitrag von juelin »

Hallo,
wo kann ich in Lazarus sehen welchen Zeichencode ich habe
und wie kann man den dann ändern?
Ich hätte gerne UTF8.
Ist sicher eine komische Frage, aber ich suche mich sonst zu tode.
Danke und Gruß
Jürgen

Benutzeravatar
fliegermichl
Lazarusforum e. V.
Beiträge: 1639
Registriert: Do 9. Jun 2011, 09:42
OS, Lazarus, FPC: Lazarus Fixes FPC Stable
CPU-Target: 32/64Bit
Wohnort: Echzell

Re: UTF8

Beitrag von fliegermichl »

Lazarus verwendet normalerweise immer UTF8. Im Dateieditor kannst du mit der rechten Maustaste dann auf Dateieinstellungen und dann auf Zeichencodierung gehen. Da wird dir die aktuelle Codierung angezeigt und es kann dort auch eine andere ausgewählt werden..

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

Re: UTF8

Beitrag von theo »

juelin hat geschrieben: Fr 11. Okt 2024, 11:53 wo kann ich in Lazarus sehen welchen Zeichencode ich habe
und wie kann man den dann ändern?
Meinst du im Lazarus Code Editor oder bei einer eingelesenen Textdatei?

Im Code Editor hast du standardmässig UTF-8.
Allerdings spielt das für den normalen Code erst einmal keine Rolle, da die ersten 128 Zeichen von UTF-8 ASCII kompatibel sind (Also alle Zeichen, die man zum eigentlichen Programmieren braucht).
Unicode (hier UTF-8) kommt da ggf. durch Strings oder Kommentare rein.

Benutzeravatar
Zvoni
Beiträge: 371
Registriert: Fr 5. Jul 2024, 08:26
OS, Lazarus, FPC: Windoof 10 Pro (Laz 2.2.2 FPC 3.2.2)
CPU-Target: 32Bit
Wohnort: BW

Re: UTF8

Beitrag von Zvoni »

theo hat geschrieben: Fr 11. Okt 2024, 12:53 Unicode (hier UTF-8) kommt da ggf. durch Strings oder Kommentare rein.
Oder wenn man Variablen "Var Zähler:Integer;" nutzt.....
Ein System sie alle zu knechten, ein Code sie alle zu finden,
Eine IDE sie ins Dunkel zu treiben, und an das Framework ewig zu binden,
Im Lande Redmond, wo die Windows drohn.

Warf
Beiträge: 2118
Registriert: Di 23. Sep 2014, 17:46
OS, Lazarus, FPC: Win10 | Linux
CPU-Target: x86_64

Re: UTF8

Beitrag von Warf »

Zvoni hat geschrieben: Fr 11. Okt 2024, 12:58 Oder wenn man Variablen "Var Zähler:Integer;" nutzt.....
Das geht (noch) nicht weil der FPC (noch) keine Unicode Identifier kann.

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

Re: UTF8

Beitrag von theo »

Warf hat geschrieben: Fr 11. Okt 2024, 13:05 Das geht (noch) nicht weil der FPC (noch) keine Unicode Identifier kann.
...und hoffentlich auch nie können wird... :roll:

Benutzeravatar
juelin
Beiträge: 244
Registriert: Sa 24. Jul 2021, 18:03
OS, Lazarus, FPC: Linux Ubuntu 22. Windows 10 Delphi 11.3 (L 0.9.xy FPC 2.2.z)
CPU-Target: 64Bit
Wohnort: Mannheim

Re: UTF8

Beitrag von juelin »

Danke für die Antworten.
Aber wo in Lazarus ist der Dateieditor oder Codeeditor.
Könnt Ihr mal ein Screenshot davon machen?
Gruß
Jürgen

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

Re: UTF8

Beitrag von theo »

juelin hat geschrieben: Fr 11. Okt 2024, 13:21 Aber wo in Lazarus ist der Dateieditor oder Codeeditor.
Könnt Ihr mal ein Screenshot davon machen?
Na der Codeeditor ist da, wo du deinen Code reintippst, oder wie machst du das? :wink:
In der dt. Version auch bekannt als "Quelltexteditor".

Einen "Dateieditor" gibt es nicht, oder ich weiss nicht, was du damit meinst.
Es gibt z.B. TMemo, da kannst du Textdateien hineinladen und wieder speichern.
Das nennt man aber Texteditor.

wp_xyz
Beiträge: 5142
Registriert: Fr 8. Apr 2011, 09:01

Re: UTF8

Beitrag von wp_xyz »

theo hat geschrieben: Fr 11. Okt 2024, 13:09
Warf hat geschrieben: Fr 11. Okt 2024, 13:05 Das geht (noch) nicht weil der FPC (noch) keine Unicode Identifier kann.
...und hoffentlich auch nie können wird... :roll:
+1

Warf
Beiträge: 2118
Registriert: Di 23. Sep 2014, 17:46
OS, Lazarus, FPC: Win10 | Linux
CPU-Target: x86_64

Re: UTF8

Beitrag von Warf »

theo hat geschrieben: Fr 11. Okt 2024, 13:09 ...und hoffentlich auch nie können wird... :roll:
Als Deutsche die nur 4 Sonderzeichen haben und für die Englisch Germanische Sprache zu lernen besonders einfach ist, ist das immer einfach zu sagen.

Also ich weiß nicht wies euch geht, aber als mir damals mit 8 Pascal Programmierung gezeigt wurde, waren in den Beispielen die ganzen Bezeichnernamen auf Deutsch, damit ich als Kind das damals noch kein Englisch konnte, das auch verstehen kann.
Für Kinder aus dem Arabischen, Kyrillischen oder Asiatischen Raum ist das schlicht weg keine Option.

Ich persönlich finde jeder, unabhängig von Zugang zu Bildung und Englischkentnissen sollte die Möglichkeit bekommen Programmieren zu lernen.

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

Re: UTF8

Beitrag von theo »

Das sehe ich überhaupt nicht so.
Es ist ein grosser Vorteil und verbindend, dass sich alle an die englische Sprache halten beim Schreiben von Code.

Ausserdem, wie sieht das überhaupt aus in RTL Sprachen, wenn die reservierten Wörter dann doch in englisch sind?
Dieses Chaos hilft niemandem.

Code: Alles auswählen

var العد_ الصحيح:  integer; 
S.a.: https://en.m.wikipedia.org/wiki/Non-Eng ... _languages

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6770
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: UTF8

Beitrag von af0815 »

Ich würde sagen, die Sprache ist egal, solange mit 7bit ASCII abgedeckt werden kann.
Das mit der Programmierung in lokaler Sprachen hat, soweit ich mich zurück erinnere schon Mal MS probiert. War Recht angenehm ABER das dicke Ende ist im internationalen Konzern sofort gekommen. Die Access/Excel Applikation mit VBA hat halt in Holland nicht funktioniert. großes Rätselraten.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Warf
Beiträge: 2118
Registriert: Di 23. Sep 2014, 17:46
OS, Lazarus, FPC: Win10 | Linux
CPU-Target: x86_64

Re: UTF8

Beitrag von Warf »

theo hat geschrieben: Fr 11. Okt 2024, 17:41 Das sehe ich überhaupt nicht so.
Es ist ein grosser Vorteil und verbindend, dass sich alle an die englische Sprache halten beim Schreiben von Code.
Wenn man Professionell arbeitet stimme ich voll und ganz zu, doch wenn man lernt ist es ganz normal das Beispiele oft Begriffe in der eigenen Sprache benutzen um die Konzepte einfacher zu erklären.
theo hat geschrieben: Fr 11. Okt 2024, 17:41 Ausserdem, wie sieht das überhaupt aus in RTL Sprachen, wenn die reservierten Wörter dann doch in englisch sind?
Dieses Chaos hilft niemandem.
Als jemand der Programmieren konnte bevor er Englisch konnte, kann ich dir das relativ einfach sagen, die Englischen Wörter lernt man halt einfach als Dinger auch wenn man nicht genau weiß was sie bedeuten. Oder wie man sie in einem Englischen Satz benutzt, aber man weiß wie man sie tippt und wo sie im Programm hingehören.
Und das Beispiel was du gebracht hast hilft mir nicht das stimmt, aber nur weil ich kein Arabisch kann. Für Araber die grade neu am Programmieren lernen sind, ist das vermutlich sehr hilfreich.
af0815 hat geschrieben: Fr 11. Okt 2024, 17:58 Das mit der Programmierung in lokaler Sprachen hat, soweit ich mich zurück erinnere schon Mal MS probiert. War Recht angenehm ABER das dicke Ende ist im internationalen Konzern sofort gekommen.
Unicode Bezeichner können fast alle modernen Sprachen. C++, Java, Rust, C#, Swift, Kotlin, JavaScript, etc. So ziemlich alle Sprachen erlauben Unicode Identifier, genau aus den oben aufgeführten Gründen. Man will den Einstieg in die Programmierung möglichst vielen Leuten ermöglichen, unabhängig vom Bildungsstand. Und es funktioniert, ich hab schon Arabische, Koreanische, Japanische und Kyrillische Code Bases gesehen. Kann ich persönlich damit Arbeiten? Nein, aber solang die Codebase rein lokal oder rein Privat genutzt wird, warum nicht?


Außerdem, just for fun:

Code: Alles auswählen

{$Macro On}
{$Define Programm:=program}
{$Define Benutzt:=uses}
{$Define Start:=begin}
{$Define Ende:=end}
{$Define SchreibZeile:=WriteLn}

Programm Project1;

Benutzt
  SysUtils;

Start
  SchreibZeile('Hallo Welt!');
Ende.
Theoretisch müsste man nur einmal alle Keywords und Standard bezeichner definieren in eine Datei werfen und könnte das dann in jeder Unit (oder "Einheit" dann) über {$I} einbinden

Ist tatsächlich einer der Gründe warum der C Präprozessor ursprünglich eingeführt wurde, damit wenn dem Programmierer die Keywords oder Syntax nicht gefällt, die einfach geändert werden können

Benutzeravatar
fliegermichl
Lazarusforum e. V.
Beiträge: 1639
Registriert: Do 9. Jun 2011, 09:42
OS, Lazarus, FPC: Lazarus Fixes FPC Stable
CPU-Target: 32/64Bit
Wohnort: Echzell

Re: UTF8

Beitrag von fliegermichl »

Warf hat geschrieben: Fr 11. Okt 2024, 18:43
Außerdem, just for fun:

Code: Alles auswählen

{$Macro On}
{$Define Programm:=program}
{$Define Benutzt:=uses}
{$Define Start:=begin}
{$Define Ende:=end}
{$Define SchreibZeile:=WriteLn}

Programm Project1;

Benutzt
  SysUtils;

Start
  SchreibZeile('Hallo Welt!');
Ende.
Theoretisch müsste man nur einmal alle Keywords und Standard bezeichner definieren in eine Datei werfen und könnte das dann in jeder Unit (oder "Einheit" dann) über {$I} einbinden

Ist tatsächlich einer der Gründe warum der C Präprozessor ursprünglich eingeführt wurde, damit wenn dem Programmierer die Keywords oder Syntax nicht gefällt, die einfach geändert werden können
Ich faul ab. Das funktioniert ja tatsächlich.

Warf
Beiträge: 2118
Registriert: Di 23. Sep 2014, 17:46
OS, Lazarus, FPC: Win10 | Linux
CPU-Target: x86_64

Re: UTF8

Beitrag von Warf »

Übrigens, ich bin nicht der Meinung man sollte die RTL oder sowas übersetzen, das Stört mich schon an Excel das da die Funktionen Lokalisiert sind. Es geht wirklich nur darum das Programmieren im Endeffekt zum größten Teil daraus besteht bestehende Konzepte in Code Strukturen abzubilden um damit zu Arbeiten. Ein Kochrezept Software hat Datentypen für Rezepte, Zutaten, Einheiten, etc.
Der größte Schritt beim Entwickeln einer Lösung ist meistens einen Weg zu finden die Konzepte aus der Realen Welt vernünftig abzubilden. Und grade für jemanden der nicht gut Englisch kann, hilft es da ungemein wenn man seine Klassen einfach Rezept, Zutat, Mengeneinheit, etc. nennen kann statt erst mal überlegen zu müssen was diese Konzepte in einer anderen Sprache heißen.

Klar wenn man gut Englisch spricht ists nicht so Schwer, aber das habe ich damals auch bei Ingeneuren gelernt, wenn man Ingeneurswissenschaften auf Deutsch studiert hat, dann kann es sehr gut sein das man diverse Fachbegriffe einfach nicht im Englischen kennt. Und wenn die Software nie International werden soll, warum dann sich im Wörterbuch die Englische Übersetzung raussuchen?

Antworten