Unicode mal verständlich
-
- 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:
Unicode mal verständlich
Kann mir das mal bitte jemand erklären ich blick da wirklich nicht mehr durch.
Im Prometheus werden bei LANG=*.utf8 die Zeichen in den Editfeldern verschluckt wenn ich auf ISO... setze wird ab dem entsprechenden zeichen nichts mehr angezeigt. Im VT werden mit TextOut immer ? angezeigt.
Im AudioX kann ich komischerweise mit *.utf8 Umlaute eingeben die auch korrekt in den mp3s gespeichert werden und auch wieder geladen und angezeigt. Im VT werden diese komischen A* sonderzeichen dargestellt.
2 Programme alles string basiert (zumindest die VT ausgaben) und komplett anderes Verhalten. zumindest vom VT. Im prometheus sind alles Db Edits und im Audio X normale TEdit villeicht ist das mit den Edits damit zu erklären.
Was macht die LCL überhaupt anders wenn die LANG Variable sich ändert ?
Im Prometheus werden bei LANG=*.utf8 die Zeichen in den Editfeldern verschluckt wenn ich auf ISO... setze wird ab dem entsprechenden zeichen nichts mehr angezeigt. Im VT werden mit TextOut immer ? angezeigt.
Im AudioX kann ich komischerweise mit *.utf8 Umlaute eingeben die auch korrekt in den mp3s gespeichert werden und auch wieder geladen und angezeigt. Im VT werden diese komischen A* sonderzeichen dargestellt.
2 Programme alles string basiert (zumindest die VT ausgaben) und komplett anderes Verhalten. zumindest vom VT. Im prometheus sind alles Db Edits und im Audio X normale TEdit villeicht ist das mit den Edits damit zu erklären.
Was macht die LCL überhaupt anders wenn die LANG Variable sich ändert ?
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/
Tja, das ist ein Buch mit sieben Siegeln 
Von welcher Plattform sprichst du überhaupt.
Ich weiss nur, dass GTK1 und GTK2 da ziemlich verschieden funzen.
Während du bei GTK2 nur UTF8 Strings z.B. an TextOut schicken darfst, kommt dabei bei GTK1 nichts gescheites an und umgekehrt.
Font.Charset hat unter GTK z.B. gar keine Bedeutung.
Oder sprichst du von Win? Da ist's glaub ich nochmal anders (UTF-16 intern?).
Was dann über die Tastatur (OnKeyPress) rausgeht ist wieder ein anderes Kapitel, ich vermute das geht gar nicht Unicode-mässig.
Das ist ja als Char definiert. Vielleicht kann man da was Composen aber keine Ahnung.
Wollte nur sagen: Du bist nicht allein, ich kapier's auch nicht.
Ich vermute sogar, die Dev's blicken da auch nicht ganz durch. Aber das kann man ihnen nicht verübeln.
Das kennste ja bestimmt: http://wiki.lazarus.freepascal.org/LCL_ ... Support/de" onclick="window.open(this.href);return false;

Von welcher Plattform sprichst du überhaupt.
Ich weiss nur, dass GTK1 und GTK2 da ziemlich verschieden funzen.
Während du bei GTK2 nur UTF8 Strings z.B. an TextOut schicken darfst, kommt dabei bei GTK1 nichts gescheites an und umgekehrt.
Font.Charset hat unter GTK z.B. gar keine Bedeutung.
Oder sprichst du von Win? Da ist's glaub ich nochmal anders (UTF-16 intern?).
Was dann über die Tastatur (OnKeyPress) rausgeht ist wieder ein anderes Kapitel, ich vermute das geht gar nicht Unicode-mässig.
Das ist ja als Char definiert. Vielleicht kann man da was Composen aber keine Ahnung.
Wollte nur sagen: Du bist nicht allein, ich kapier's auch nicht.

Ich vermute sogar, die Dev's blicken da auch nicht ganz durch. Aber das kann man ihnen nicht verübeln.
Das kennste ja bestimmt: http://wiki.lazarus.freepascal.org/LCL_ ... Support/de" onclick="window.open(this.href);return false;
-
- 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:
Ja, kenn ich hilft aber nicht viel. Ich rede vom Linux im Windows läuft das ganze mit ISO... sehr gut. Aber bin momentan dran die Linux Ports meiner Applikationen aufzumöbeln und versteh dich voll und ganz mit deinen Aussagen zur LCL immer. ist im GTK ne Katastrophe. Alles was Thread basiert ist musst ich auch umschiffen weil das auch im fpc 2.3.1 immer noch nicht funktioniert sobald man Synchronize nur aufruft crasht die Applikation ich denk aber das hängt mehr an der LCL.
Jetzt hab ich das alles halbwegs am laufen es macht schon fast ein wenig Spass die Applikationen zu benutzen und dann kommt der Unicode Scheiss. nichtmal LANG="de_DE.ISO..." hilft.
Jetzt hab ich das alles halbwegs am laufen es macht schon fast ein wenig Spass die Applikationen zu benutzen und dann kommt der Unicode Scheiss. nichtmal LANG="de_DE.ISO..." hilft.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/
Ich schau mir die Sache bald mal genauer an.
Was ich noch weiss: Beit GTK1 hängt es glaubs mit der GTK Konfiguration zusammen ob Unicode unterstützt wird. Wie man das wohl at runtime rauskriegt? ??
Bei mir hilft aber export LANG=de_CH schon um die Ansi Geschichte zu regeln (Umlaute). Auch unter GTK2. (siehe AnsiToUTF8)
Bezüglich Threads hatte ich weniger Probleme. Du hast aber schon cthreads in der uses der *.lpr ?
Was ich noch weiss: Beit GTK1 hängt es glaubs mit der GTK Konfiguration zusammen ob Unicode unterstützt wird. Wie man das wohl at runtime rauskriegt? ??
Bei mir hilft aber export LANG=de_CH schon um die Ansi Geschichte zu regeln (Umlaute). Auch unter GTK2. (siehe AnsiToUTF8)
Bezüglich Threads hatte ich weniger Probleme. Du hast aber schon cthreads in der uses der *.lpr ?
-
- 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:
natürlich ist die cthreads drin die threads funktionieren auch halbwegs aber sobals ich Synchronize aufrufe ists vorbei. An anderer Stelle benutze ich TProcess sobald TProcess.Execute ausgeführt wird -> Crash.
Was erschreckend ist, ist das ich neuerdings Threads debuggen kann. Bisher ohne das mein X abgestürzt ist.
Iwe schon gesagt LANG=de_DE verändert das Problem behebt es aber nicht. In der IDE kann ich danach auch Umlaute eingeben aber im Prometheus nicht und im Audio X kann ich sogar mit UTF8 Umlaute eingeben.
Was erschreckend ist, ist das ich neuerdings Threads debuggen kann. Bisher ohne das mein X abgestürzt ist.
Iwe schon gesagt LANG=de_DE verändert das Problem behebt es aber nicht. In der IDE kann ich danach auch Umlaute eingeben aber im Prometheus nicht und im Audio X kann ich sogar mit UTF8 Umlaute eingeben.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/
-
- Lazarusforum e. V.
- Beiträge: 2809
- Registriert: Sa 9. Sep 2006, 18:05
- OS, Lazarus, FPC: Linux (L trunk FPC trunk)
- CPU-Target: 64Bit
- Wohnort: Dresden
- Kontaktdaten:
Auch wenn es nicht das Hauptthema ist, ich hab es schonmal unter GTK mit Threads probiert und sowohl die Threads als auch Synchronize hat ohne Probleme funktioniert, lediglich eine Unit mehr musste ich einbinden, dann wie gesagt - alles einwandfrei.Christian hat geschrieben:Alles was Thread basiert ist musst ich auch umschiffen weil das auch im fpc 2.3.1 immer noch nicht funktioniert sobald man Synchronize nur aufruft crasht die Applikation ich denk aber das hängt mehr an der LCL.
Um genau zu sein hatte ich nen TProcess in nem Thread und Synchronize auf die Hauptform.
Johannes
Ich nehme an, du hast zu all diesen Programmen den Source Code.Christian hat geschrieben: Iwe schon gesagt LANG=de_DE verändert das Problem behebt es aber nicht. In der IDE kann ich danach auch Umlaute eingeben aber im Prometheus nicht und im Audio X kann ich sogar mit UTF8 Umlaute eingeben.
Finden Sie den Unterschied!

Wenn du was rausgefunden hast, erzähl es uns. Interessiert mich auch.
Das wär aber interessant. Schau doch mal wenigstens die wichtigsten Unterschiede an.Christian hat geschrieben:Klar nur keine Lust mich da durchzuarbeiten
Wird intern mit String oder WideString gearbeitet?
Gibt es bedingte Kompilierung in diesen Bereichen für Win32, GTK, GTK2 ?
Welche TextOut etc Funktionen werden benutzt?
Gibt es Konvertierungen (AnsiToUTF8, UnicodeToUTF8 etc.) ?
Einen Grund wird's schon geben.