Falsche Kodierung von eingefügtem Text im SynEdit

Rund um die LCL und andere Komponenten
ArchChem
Beiträge: 74
Registriert: Mo 11. Jul 2022, 10:41

Re: Falsche Kodierung von eingefügtem Text im SynEdit

Beitrag von ArchChem »

Hallo,

danke dir, Theo! Die Unit LConvEncoding hat auch eine Funktion GuessCoding, mit der man die Kodierung erraten kann. Dabei kommt tatsächlich raus, dass der eingefügte Text in der ISO_8859_1 vorliegt. Somit kann ich durch die Konvertierung wieder Umlaute darstellen, bei chinesischen Schriftzeichen (beispielhaft, andere Sprachen habe ich nicht ausprobiert) klappt es aber weiterhin nicht. Hier erkennt die Funktion ein UTF8, kann damit aber nichts anfangen.

Code: Alles auswählen

procedure TfrmDisplaySongContent.memoCodePaste(Sender: TObject;
  var AText: String; var AMode: TSynSelectionMode; ALogStartPos: TPoint;
  var AnAction: TSynCopyPasteAction);
var
  GuessedCoding: String;
  Encoded: Boolean;
begin
  GuessedCoding := GuessEncoding(AText);
  ShowMessage(GuessedCoding); // zu Debug-Zwecken
  AText:=ConvertEncodingToUTF8(AText, GuessedCoding, Encoded);
end;                

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

Re: Falsche Kodierung von eingefügtem Text im SynEdit

Beitrag von theo »

OK, aber die Frage bleibt, warum das Clipboard auf Wayland (oder gibt es andere mögliche Gründe?) kein UTF-8 liefert.

Hast du einen Bugreport gemacht? Wenn ja, könntest du ihn hier verlinken?

Mathias
Beiträge: 5929
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

Beitrag von Mathias »

Ich bin gerade an einem Linux-Programm, welches das Clipboard über mehrere Targest bedienen kann.
Auf der linken Spalte sind alle Targets gelistet, welche zur Bedienung eines Clienten zu Verfügung stehen.
Mit den Tasten 0-9, a-n, kann Targets an und abwählen.

Per Default, sobald es gestartet ist, kann man zB. in die Lazarus-IDE gehen und Crtl-V drücken, dann erscheint dort wie die IDE beliefert wurde. Dies sollte mit "UTF8-STRING" sein.
Wähle ich dies in meiner App ab, kommt bei der IDE "COMPOUND_TEXT", usw.

Der Sinn an dieser App ist, man kann sehen, welches Targets der Client bevorzugt.

ThundBird bevorzugt "text/html"
Dateianhänge
45_-_To_Clipboard.zip
(3.34 KiB) 14-mal heruntergeladen
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

ArchChem
Beiträge: 74
Registriert: Mo 11. Jul 2022, 10:41

Re: Falsche Kodierung von eingefügtem Text im SynEdit

Beitrag von ArchChem »

Hallo Theo,
theo hat geschrieben:
Do 27. Jul 2023, 19:36
Hast du einen Bugreport gemacht? Wenn ja, könntest du ihn hier verlinken?
Gerade habe ich einen Bugreport gemacht: https://gitlab.com/freepascal.org/lazar ... sues/40423. Mittlerweile konnte ich das Problem noch ein bisschen eingrenzen (siehe Bugreport). Der Fehler tritt nur unter KDE5 (Plasma) + Wayland und nicht unter der Gnome Shell auf (das kann ich jetzt definitiv so sagen). Und es scheint ein Firefox-spezifisches Problem zu sein, denn wenn ich einen Text mit Umlauten aus Google Chrome heraus kopiere, funktioniert alles einwandfrei. Wenn ich etwas vom Firefox in eine andere Anwendung (nicht Lazarus) hineinkopiere, ist der Text aber auch richtig kodiert, sodass ich weiterhin von einem Fehler in der LCL ausgehen würde. Eventuell hilft das hier weiter (das habe ich auch im Bugreport verlinkt): https://stackoverflow.com/questions/514 ... -java-in-u.

Viele Grüße und Danke nochmal für die Hilfe!
Mathias hat geschrieben:
Fr 28. Jul 2023, 16:42
Ich bin gerade an einem Linux-Programm, welches das Clipboard über mehrere Targest bedienen kann.
Auf der linken Spalte sind alle Targets gelistet, welche zur Bedienung eines Clienten zu Verfügung stehen.
Mit den Tasten 0-9, a-n, kann Targets an und abwählen.

Per Default, sobald es gestartet ist, kann man zB. in die Lazarus-IDE gehen und Crtl-V drücken, dann erscheint dort wie die IDE beliefert wurde. Dies sollte mit "UTF8-STRING" sein.
Wähle ich dies in meiner App ab, kommt bei der IDE "COMPOUND_TEXT", usw.

Der Sinn an dieser App ist, man kann sehen, welches Targets der Client bevorzugt.

ThundBird bevorzugt "text/html"
Vielen Dank!

Antworten