Von wegen UTF-8 ist die Quelle allen Übels...
-
- Beiträge: 3444
- Registriert: Mo 11. Sep 2006, 10:24
- OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
- CPU-Target: X32 / X64 / ARMv5
- Wohnort: Krefeld
Re: Von wegen UTF-8 ist die Quelle allen Übels...
./.
Zuletzt geändert von mschnell am So 17. Jan 2010, 23:07, insgesamt 1-mal geändert.
-
- Beiträge: 3444
- Registriert: Mo 11. Sep 2006, 10:24
- OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
- CPU-Target: X32 / X64 / ARMv5
- Wohnort: Krefeld
Re: Von wegen UTF-8 ist die Quelle allen Übels...
Was machst Du denn, wenn Du ein 1 Mio Zeilen- Delphi- oder Lazarus-Programm von vor ein paar Monaten Monaten, als die Compiler noch gar kein Unicode kannten hast und das mit dem neuen FPC übersetzen willst ? Die quellen sind halt nicht Unicode-Codiert. Vielleicht muss man sie dann mit irgendeiner anderen Software erst mal konvertieren ....theo hat geschrieben:Wieso kann der FPC die Lazarus Quellen nicht als UTF-8 behandeln?
-Michael
Re: Von wegen UTF-8 ist die Quelle allen Übels...
Darum geht's nicht. Aber trotzdem: Vllt hast du schon mal diesen Menupunkt gesehen:mschnell hat geschrieben:Vielleicht muss man sie dann mit irgendeiner anderen Software erst mal konvertieren ....
Werkzeuge -> Kodierung von Projekten/Packages konvertieren...
-
- Beiträge: 2013
- Registriert: Do 16. Okt 2008, 10:22
- OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
- CPU-Target: x86,x64,ARM
Re: Von wegen UTF-8 ist die Quelle allen Übels...
Weil zur Kompilierzeit die Codierung zur Laufzeit nicht bekannt ist.mschnell hat geschrieben: Hört sich aber nicht sehr clever an. Warum legt er die konstanten Strings nicht gleich in der Codierung an, wie sie benötigt werden ?
-
- Beiträge: 2013
- Registriert: Do 16. Okt 2008, 10:22
- OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
- CPU-Target: x86,x64,ARM
Re: Von wegen UTF-8 ist die Quelle allen Übels...
Ja, das Trennen von Lazarus Units ohne Codepageangabe und nicht-Lazarus Units mit Codepageangabe ist eine Möglichkeit. Auch nicht das Gelbe vom Ei, speziell in event handlern...theo hat geschrieben: Warum meinst du, dass das nicht die Standardeinstellung bei Lazarus sein kann?
Und probiere mal Caption:= 'öäü' unter Windows.
-
- Beiträge: 3444
- Registriert: Mo 11. Sep 2006, 10:24
- OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
- CPU-Target: X32 / X64 / ARMv5
- Wohnort: Krefeld
Re: Von wegen UTF-8 ist die Quelle allen Übels...
Meinst Du die nationale Systemcodierung von ANSI-Strings ?mse hat geschrieben:Weil zur Kompilierzeit die Codierung zur Laufzeit nicht bekannt ist.
Ich sehe ein, dass es (falls nicht dynamisch kodierte Strings verwendet werden) die wenigsten Probleme gibt, wenn keine Stringkonstanten in nicht-Unicode Codierung erzeugt werden. Das führt natürlich zu erhöhtem Aufwand zur Laufzeit.
-Michael
-
- Beiträge: 2013
- Registriert: Do 16. Okt 2008, 10:22
- OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
- CPU-Target: x86,x64,ARM
Re: Von wegen UTF-8 ist die Quelle allen Übels...
Ja.mschnell hat geschrieben:Meinst Du die nationale Systemcodierung von ANSI-Strings ?mse hat geschrieben:Weil zur Kompilierzeit die Codierung zur Laufzeit nicht bekannt ist.
-
- Beiträge: 3444
- Registriert: Mo 11. Sep 2006, 10:24
- OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
- CPU-Target: X32 / X64 / ARMv5
- Wohnort: Krefeld
Re: Von wegen UTF-8 ist die Quelle allen Übels...
Ganz schlecht für mich. Die Sourcen der Projekte müssen sowohl mit Delphi als auch mit FPC übersetzbar sein.theo hat geschrieben:Aber trotzdem: Vllt hast du schon mal diesen Menupunkt gesehen:
Werkzeuge -> Kodierung von Projekten/Packages konvertieren...
-Michael
Re: Von wegen UTF-8 ist die Quelle allen Übels...
Ich glaube nicht, dass die Kompatibilität mit deinem alten Delphi die Grundüberlegung für die weitere Entwicklung von Lazarus sein sollte.mschnell hat geschrieben: Ganz schlecht für mich. Die Sourcen der Projekte müssen sowohl mit Delphi als auch mit FPC übersetzbar sein.
Aber du bewertest die Sache total über. Wo treten den konkret Probleme auf? Normaler Quellcode ist ja sowieso nur in ASCII, ausser vllt. ein paar Umlaute in Kommentaren.
Dann gibt's doch höchstens noch wenige Units mit Stringkonstanten welche allenfalls Umlaute enthalten.
Die muss man vielleicht mit Compilerschalter einhängen oder was-weiss-ich.
Re: Von wegen UTF-8 ist die Quelle allen Übels...
Stimmt, geht nicht.mse hat geschrieben: Und probiere mal Caption:= 'öäü' unter Windows.
Das ist dann wohl wegen dem WS-Manager/Wide2AnsiMove.
Könnte man den nicht global ausschalten und diese Funktionen nur noch spezifisch verwenden, dort wo sie gebraucht werden?
Also in AnsiToUTF8 etc?
-
- Beiträge: 2013
- Registriert: Do 16. Okt 2008, 10:22
- OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
- CPU-Target: x86,x64,ARM
Re: Von wegen UTF-8 ist die Quelle allen Übels...
Das wäre möglich. Man müsste einen Widestringmanager machen, der, unabhängig von der Systemcodierung, immer nach utf-8 wandelt. Danach müsste man spezielle AnsiToUTF8 und UTF8ToAnsi Routinen bauen, die ohne Widestringmanager auskommen und alle System Aufrufe mit UTF8ToAnsi/WideToAnsi ausstatten.theo hat geschrieben: Könnte man den nicht global ausschalten und diese Funktionen nur noch spezifisch verwenden, dort wo sie gebraucht werden?
Also in AnsiToUTF8 etc?
Die Verwendung von Ansistrings in der Systemcodierung wäre ebenfalls problematisch.
-
- Beiträge: 3444
- Registriert: Mo 11. Sep 2006, 10:24
- OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
- CPU-Target: X32 / X64 / ARMv5
- Wohnort: Krefeld
Re: Von wegen UTF-8 ist die Quelle allen Übels...
Haha meine Kollegen haben eine Million Zeilen aktiven Delphi-Code, der permanent gepflegt wird und weiterhin so laufen soll. Ein kleiner Teil davon soll nun auch auf Linux laufen. Catch 22theo hat geschrieben:Kompatibilität mit deinem alten Delphi

-Michael
Re: Von wegen UTF-8 ist die Quelle allen Übels...
1. Und was soll das jetzt für die Lazarus Entwicklung heissen? Nicht mal Delphi ist vollständig rückwartskompatibel.mschnell hat geschrieben:Haha meine Kollegen haben eine Million Zeilen aktiven Delphi-Code, der permanent gepflegt wird und weiterhin so laufen soll. Ein kleiner Teil davon soll nun auch auf Linux laufen. Catch 22theo hat geschrieben:Kompatibilität mit deinem alten Delphi![]()
2. Was hindert dich daran, den Code unter Linux lauffähig zu machen?
-
- Beiträge: 203
- Registriert: Di 22. Sep 2009, 13:08
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
Re: Von wegen UTF-8 ist die Quelle allen Übels...
Ob sowas gut geht? Delphi ist ja nicht mal richtig kompatibel zu sich selbst...mschnell hat geschrieben:Haha meine Kollegen haben eine Million Zeilen aktiven Delphi-Code, der permanent gepflegt wird und weiterhin so laufen soll. Ein kleiner Teil davon soll nun auch auf Linux laufen. Catch 22theo hat geschrieben:Kompatibilität mit deinem alten Delphi![]()
-Michael
Irgendwann musst Du dich wohl entscheiden. Delphi in den Abgrund folgen oder einen vernünftigen Compiler verwenden...
Wenn irgendwann mal in 5 Jahren Delphi auch 64bit beherrscht ist von der Kompatibilität her wohl eh Schluss mit Lustig (dafür wird EmBordero schon sorgen...).
-
- Beiträge: 3444
- Registriert: Mo 11. Sep 2006, 10:24
- OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
- CPU-Target: X32 / X64 / ARMv5
- Wohnort: Krefeld
Re: Von wegen UTF-8 ist die Quelle allen Übels...
Der Code soll - wie gesagt - auch mit Delphi übersetzbar bleiben. Das ist in den meistern Fällen mit einigen ifdefs zu machen, aber ein Konverter nützt mit da nix. deshalb (zu 1:) ein mitgelieferter Quellcode-Konverter wäre m.E. also eine Fehlentwicklung.theo hat geschrieben:2. Was hindert dich daran, den Code unter Linux lauffähig zu machen?
-Michael