Hallo,
Ich habe mal meine EXE unter Linux in der Konsole gestartet. Da kamen ein paar Fehler, die konnte ich auch beheben.
Aber bei dem einen Fehler:
(EleLa:4827): Pango-WARNING **: Invalid UTF-8 string passed to pango_layout_set_text()
weiß ich nicht wo ich suchen soll. Eigentlich sollten alle Texte UTF8 codiert sein.
Suse 12.1-64 Lazarus 1.1/FPC2.6.0
Vielen Dank für eure Hilfe.
Grüße Markus
Linux - Fehlermeldung "Invalid UTF8-String" ? [gelöst]
-
- Beiträge: 1581
- Registriert: Fr 10. Okt 2008, 23:54
- OS, Lazarus, FPC: Winuxarm (L 4 FPC 3.2.2)
- CPU-Target: 32/64Bit
Linux - Fehlermeldung "Invalid UTF8-String" ? [gelöst]
Zuletzt geändert von MmVisual am Mi 1. Aug 2012, 09:33, insgesamt 1-mal geändert.
EleLa - Elektronik Lagerverwaltung - www.elela.de
-
- Beiträge: 1581
- Registriert: Fr 10. Okt 2008, 23:54
- OS, Lazarus, FPC: Winuxarm (L 4 FPC 3.2.2)
- CPU-Target: 32/64Bit
Re: Linux - Fehlermeldung "Invalid UTF8-String" ?
Ich denke ich habe das heraus gefunden.
Ich mache bei einem längeren String vor der Anzeige ein Copy(s, 1, 250).
Wenn jetzt genau an der Position 250 ein Zeichen steht, das 2 oder mehr Bytes benötigt, dann wird das UTF8 Zeichen ungültig
Jetzt weiß ich nur noch nicht so genau wie ich das richtig umgehe.
Ich mache bei einem längeren String vor der Anzeige ein Copy(s, 1, 250).
Wenn jetzt genau an der Position 250 ein Zeichen steht, das 2 oder mehr Bytes benötigt, dann wird das UTF8 Zeichen ungültig

Jetzt weiß ich nur noch nicht so genau wie ich das richtig umgehe.
EleLa - Elektronik Lagerverwaltung - www.elela.de
-
- 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: Linux - Fehlermeldung "Invalid UTF8-String" ?
Du schaust dir nach dem Copy() das letzte Byte an; wenn es ein Byte eines Multi-Byte-Characters ist (höchstwertigstes Bit gesetzt), entfernst du es (und [url=und alle dazugehörigen Vorhergehenden]alle dazugehörigen Vorhergehenden[/url]).MmVisual hat geschrieben:Jetzt weiß ich nur noch nicht so genau wie ich das richtig umgehe.
Die Alternative ist, die fehlenden Bytes auch noch an deinen String anzuhängen (sofern das dein Datenmodell vom Speicher her zulässt).
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Re: Linux - Fehlermeldung "Invalid UTF8-String" ?
Oder du benutzt einfach UTF8Copy in Unit LazUTF8
-
- Beiträge: 1581
- Registriert: Fr 10. Okt 2008, 23:54
- OS, Lazarus, FPC: Winuxarm (L 4 FPC 3.2.2)
- CPU-Target: 32/64Bit
Re: Linux - Fehlermeldung "Invalid UTF8-String" ?
Vielen Dank, Theo,
UTF8Copy, auf die Idee kam ich auch schon. Hat bei mir nicht geklappt, da die passende Unit man auch einbinden (und kennen) sollte.
Jetzt ist diese Wissenslücke auch geschlossen.
UTF8Copy, auf die Idee kam ich auch schon. Hat bei mir nicht geklappt, da die passende Unit man auch einbinden (und kennen) sollte.

Jetzt ist diese Wissenslücke auch geschlossen.
EleLa - Elektronik Lagerverwaltung - www.elela.de