Falsche Kodierung von eingefügtem Text im SynEdit
Falsche Kodierung von eingefügtem Text im SynEdit
Hallo,
wenn ich von einem anderen Programm (zum Beispiel dem Webbrowser) Text mittels STRG+V in ein SynEdit einfüge, werden die Nicht-ASCII-Zeichen (Umlaute, chinesische Schriftzeichen, etc.) falsch dargestellt.
Das Problem tritt nicht bei anderen Texteingabe-Komponenten auf und auch nicht, wenn direkt ins SynEdit geschrieben (Text eingegeben) wird.
Weiß jemand vielleicht eine Lösung, bei der der eingefügte Text so modifiziert werden kann, dass die Umlaute richtig dargestellt werden?
Anbei noch ein Screenshot: Vielen Dank schon mal!
wenn ich von einem anderen Programm (zum Beispiel dem Webbrowser) Text mittels STRG+V in ein SynEdit einfüge, werden die Nicht-ASCII-Zeichen (Umlaute, chinesische Schriftzeichen, etc.) falsch dargestellt.
Das Problem tritt nicht bei anderen Texteingabe-Komponenten auf und auch nicht, wenn direkt ins SynEdit geschrieben (Text eingegeben) wird.
Weiß jemand vielleicht eine Lösung, bei der der eingefügte Text so modifiziert werden kann, dass die Umlaute richtig dargestellt werden?
Anbei noch ein Screenshot: Vielen Dank schon mal!
- Jorg3000
- Lazarusforum e. V.
- Beiträge: 155
- Registriert: So 10. Okt 2021, 10:24
- OS, Lazarus, FPC: Win64
- Wohnort: NRW
Re: Falsche Kodierung von eingefügtem Text im SynEdit
Moin!
Bei mir unter Windows habe ich das Problem nicht, hier werden Umlaute richtig ins SynEdit eingefügt.
Welches System nutzt du?
Bei mir unter Windows habe ich das Problem nicht, hier werden Umlaute richtig ins SynEdit eingefügt.
Welches System nutzt du?
Re: Falsche Kodierung von eingefügtem Text im SynEdit
Guten Morgen,
ich benutze Arch Linux und KDE (Wayland).
ich benutze Arch Linux und KDE (Wayland).
Re: Falsche Kodierung von eingefügtem Text im SynEdit
Ich habe das Problem hier nicht.
Lazarus 2.3.0
Betriebssystem: openSUSE Leap 15.5
KDE-Plasma-Version: 5.27.4
Grafik-Plattform: X11
Lazarus 2.3.0
Betriebssystem: openSUSE Leap 15.5
KDE-Plasma-Version: 5.27.4
Grafik-Plattform: X11
Re: Falsche Kodierung von eingefügtem Text im SynEdit
Alles klar, danke euch für die Rückmeldung. Dann scheint es ein Wayland-spezifisches Problem zu sein...
Was könnte man denn tun, um in diesem Fall die betreffenden Zeichen zu ersetzen?
Was könnte man denn tun, um in diesem Fall die betreffenden Zeichen zu ersetzen?
Re: Falsche Kodierung von eingefügtem Text im SynEdit
Ich würde mal damit anfangen, herauszufinden was überhaupt im Clipboard liegt.
In Anlehnung daran: https://wiki.lazarus.freepascal.org/Cli ... d_contents
Code: Alles auswählen
uses ...LCLType, Clipbrd;
procedure TForm1.CheckClipboard();
var
I: integer;
List: TStringList;
begin
Memo1.Clear;
List := TStringList.Create;
try
ClipBoard.SupportedFormats(List);
for i := 0 to List.Count - 1 do
Memo1.Append(List.Strings[i]);
finally
List.Free;
end;
end;
Wenn du dem Link oben folgst, kannst du die Textinhalte mal anschauen.TIMESTAMP
TARGETS
MULTIPLE
text/plain
Application/X-Laz-SynEdit-Tagged
COMPOUND_TEXT
STRING
TEXT
UTF8_STRING
-
- Beiträge: 3
- Registriert: So 17. Apr 2022, 16:23
- OS, Lazarus, FPC: Win10, WinXP (Lazarus 2.2.0)
- CPU-Target: 64 Bit, (32 Bit)
- Wohnort: 30952 Ronnenberg
Re: Falsche Kodierung von eingefügtem Text im SynEdit
Ich kann hier nicht helfen, sondern suche selbst Hilfe in einem ähnlichen Problem. Als uralter (ab ca 1980) Delphi-, Dos- und Windows-User waren mir Codepage-Probleme bisher unbekannt - bis vor kurzem plötzlich ein sonst einwandfrei laufendes Lazarus-Programm beim Versuch, ein File mit einem Umlaut im Nemen zu laden, nichts mehr ging. Möglich, dass ich unabsichtlich auf einen falschen Button gedrückt hatte. Jedenfalls meine ich, dass das Problem erst seit kurzem akut ist. Selbst ShowMessage- und MessageDlg-Texte im Source wurden automatisch vermurkst. Mit den diversen Empfehlungen in den Lazarus- und FreePascal-Tutorials hatte ich keinen Erfolg. Man kann zwar leicht UTF8-Strings deklarieren, aber den Weg zurück zur Win-Default-CP (8859 od 8895 ?) habe ich noch nicht gefunden. Danke für evtl. Ratschläge!
Re: Falsche Kodierung von eingefügtem Text im SynEdit
@Jokra: Dein Beitrag hat keinen direkten Zusammenhang mit diesem Clipboard Problem.
Wenn es dir wichtig ist, dann mach doch bitte einen neuen Thread auf mit einer genaueren Beschreibung des Problems.
Unter Hinweisen wie "bis vor kurzem" kann man sich nicht viel vorstellen. Eine Versionsangabe wäre besser (alt->neu) etc.
"Mit den diversen Empfehlungen in den Lazarus- und FreePascal-Tutorials hatte ich keinen Erfolg" hilft beim Helfen auch nicht weiter.
Wenn es dir wichtig ist, dann mach doch bitte einen neuen Thread auf mit einer genaueren Beschreibung des Problems.
Unter Hinweisen wie "bis vor kurzem" kann man sich nicht viel vorstellen. Eine Versionsangabe wäre besser (alt->neu) etc.
"Mit den diversen Empfehlungen in den Lazarus- und FreePascal-Tutorials hatte ich keinen Erfolg" hilft beim Helfen auch nicht weiter.

-
- Beiträge: 5933
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunc)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Falsche Kodierung von eingefügtem Text im SynEdit
Ich habe da kürzlich ein kleines Programm geschrieben, welches den Targets-Inhalt des Clipboard auflistet.Ich würde mal damit anfangen, herauszufinden was überhaupt im Clipboard liegt.
In Anlehnung daran: https://wiki.lazarus.freepascal.org/Cli ... d_contents
Beim drücken von <space> im weissen Fenster, werden dir Targets gelistet. Bim mir kommt das Gleiche wie bei Theo, wen ich in Lazarus Ctrl-C drücke.
Anschliessend kann man die eingeklammerte Nummer drücken und dann werden einige Inhalte ausgegeben, bevorzugt, alles was Text ist.
Dabei ist die Ausgabe zT. recht spannend, je nachdem ich in welcher Anwendung kopieren drücke. Die Umlaute werden nicht überall gleich interpretiert.
Das Programm läuft nur unter Linux.
- Dateianhänge
-
05_-_Show_Targets.zip
- (5.14 KiB) 22-mal heruntergeladen
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
Re: Falsche Kodierung von eingefügtem Text im SynEdit
Hallo,
vielen Dank für eure Antworten und Lösungsvorschläge! Ich werde das morgen ausführlich testen und dann Rückmeldung geben (hatte es heute leider zeitlich nicht geschafft). Es scheint mir jetzt aber so, dass hier ein Problem vorliegt, welches auf Lazarus+Qt5+KDE+Wayland beschränkt ist...
Also Danke nochmal und bis morgen
vielen Dank für eure Antworten und Lösungsvorschläge! Ich werde das morgen ausführlich testen und dann Rückmeldung geben (hatte es heute leider zeitlich nicht geschafft). Es scheint mir jetzt aber so, dass hier ein Problem vorliegt, welches auf Lazarus+Qt5+KDE+Wayland beschränkt ist...
Also Danke nochmal und bis morgen

Re: Falsche Kodierung von eingefügtem Text im SynEdit
Nochmals hallo allerseits,
Viele Grüße!
Vielen Dank für den Vorschlag. Für einen aus dem Firefox heraus kopierten Text mit Umlauten erhalte ich folgendes:theo hat geschrieben: ↑Mo 24. Jul 2023, 10:53Ich würde mal damit anfangen, herauszufinden was überhaupt im Clipboard liegt.
In Anlehnung daran: https://wiki.lazarus.freepascal.org/Cli ... d_contents
Bzw. die Implementierung auf der Wiki-Seite zeigt folgendes an:TIMESTAMP
TARGETS
MULTIPLE
SAVE_TARGETS
text/html
text/_moz_htmlcontext
text/_moz_htmlinfo
text/plain;charset=utf-8
COMPOUND_TEXT
text/plain
STRING
text/plain;charset=utf-8
text/plain
text/x-moz-url-priv
<- also auch hier wird bei allen drei Varianten der Umlaut falsch dargestellt. Wenn ich den Text aber direkt in das Memo (nicht SynEdit) einfüge, ist er korrekt dargestellt.[ Ich w?rde mal damit anfangen, herauszufinden was ?berhaupt im Clipboard liegt.]
TIMESTAMP
TARGETS
MULTIPLE
SAVE_TARGETS
text/html
text/_moz_htmlcontext
text/_moz_htmlinfo
text/plain;charset=utf-8
COMPOUND_TEXT
text/plain
text/plain
Ich w?rde mal damit anfangen, herauszufinden was ?berhaupt im Clipboard liegt.
STRING
text/plain;charset=utf-8
text/plain
text/plain
Ich w?rde mal damit anfangen, herauszufinden was ?berhaupt im Clipboard liegt.
text/x-moz-url-priv
Vielen Dank für den Programmvorschlag! Ich habe es ausprobiert, leider ergibt bei mir die Leertaste keine Reaktion, das Fenster bleibt weiß...Mathias hat geschrieben: ↑Mo 24. Jul 2023, 19:10Ich habe da kürzlich ein kleines Programm geschrieben, welches den Targets-Inhalt des Clipboard auflistet.
Beim drücken von <space> im weissen Fenster, werden dir Targets gelistet. Bim mir kommt das Gleiche wie bei Theo, wen ich in Lazarus Ctrl-C drücke.
Viele Grüße!
Re: Falsche Kodierung von eingefügtem Text im SynEdit
Ist wohl wirklich ein Wayland Problem.
Das Memo ist ein gekapseltes Qt oder GTK Control, das macht das quasi "ohne" Lazarus.
Ich würde einen Bugreport machen. Anscheinend betrifft es das Lazarus Clipboard allgemein, nicht nur Synedit.
Das Memo ist ein gekapseltes Qt oder GTK Control, das macht das quasi "ohne" Lazarus.
Ich würde einen Bugreport machen. Anscheinend betrifft es das Lazarus Clipboard allgemein, nicht nur Synedit.
Re: Falsche Kodierung von eingefügtem Text im SynEdit
Alles klar, dann werde ich das so machen.
Gibt es denn unabhängig davon irgendeinen Workaround, mit dem man in diesem Fall die Zwischenablage manipulieren könnte?
Gibt es denn unabhängig davon irgendeinen Workaround, mit dem man in diesem Fall die Zwischenablage manipulieren könnte?
-
- Beiträge: 5933
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunc)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Falsche Kodierung von eingefügtem Text im SynEdit
Die Ausgabe erfolgt auf eine Konsole, mit einem gewöhnlichen WriteLn.Vielen Dank für den Programmvorschlag! Ich habe es ausprobiert, leider ergibt bei mir die Leertaste keine Reaktion, das Fenster bleibt weiß...
Als ich kürzlich Versuche mit dem Clpboard machte, musste ich auch feststellen, das sich Synedit anders verhält alt GTK-Memos.Ist wohl wirklich ein Wayland Problem.
Das Memo ist ein gekapseltes Qt oder GTK Control, das macht das quasi "ohne" Lazarus.
Ich würde einen Bugreport machen. Anscheinend betrifft es das Lazarus Clipboard allgemein, nicht nur Synedit.
Besonders wen eine INCR-Übertragung mit sehr grossen Pakete läuft.
In den meisten Programmen, kommen meine Daten an.
Mir bekannte Versager sind SynEdit, netbeans, Thunderbird, VB mit Win10.
Anscheinend kochen alle ihre eigenen Süppchen im Clipboard.
Nachtrag: In Thunderbird ist nach 5min doch noch was angekommen.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
Re: Falsche Kodierung von eingefügtem Text im SynEdit
Synedit hat ein OnPaste Ereignis. Mit Hilfe der Unit LConvEncoding könntest du verschiedene Umwandlungen ausprobieren.
Z.B.
Code: Alles auswählen
procedure TForm1.SynEdit1Paste(Sender: TObject; var AText: String;
var AMode: TSynSelectionMode; ALogStartPos: TPoint;
var AnAction: TSynCopyPasteAction);
begin
AText:=ISO_8859_1ToUTF8(AText);
end;