Ein fröhliches Hallo in die Runde!
Beim parsen diverser größerer UTF8-Texte, habe ich festgestellt, dass diese gelegentlich ungültige Zeichen enthalten. Mir würde es genügen, diese Zeichen zu entfernen.
Gibt es eine fertige Pascal-Methode (à la UTF8CharValid), die solche Zeichen aufspüren kann? Ich konnte bisher leider keine finden.
Sonst würde ich dieses Beispiel übersetzen und testen. Ich wollte aber erstmal fragen, ob ich nicht einfach nur nicht mit den richtigen Begriffen gesucht habe.
Danke
Michael
[gelöst] UTF8 finden ungültiger Zeichen
[gelöst] UTF8 finden ungültiger Zeichen
Zuletzt geändert von Michl am So 19. Apr 2015, 18:36, insgesamt 1-mal geändert.
Code: Alles auswählen
type
TLiveSelection = (lsMoney, lsChilds, lsTime);
TLive = Array[0..1] of TLiveSelection;
Re: UTF8 finden ungültiger Zeichen
Gibt alles mögliche in unit LazUTF8 z.B. UTF8FixBroken();
Re: UTF8 finden ungültiger Zeichen
Super danke!
Werde mal testen, ob es mit UTF8FixBroken schon funktioniert!
IMHO sollte indas FindInvalidUTF8Character genau das sein, was ich ursprünglich suchte.
Werde mal testen, ob es passt
Vielen Dank nochmal (hatte ich bei meiner vorherigen Durchsicht irgendwie nicht gesehen).
EDIT: Mein Testprogramm, mit diversen mir Probleme bereitenden Texten, funktioniert tadellos mit UTF8FixBroken.

Werde mal testen, ob es mit UTF8FixBroken schon funktioniert!
IMHO sollte in
Code: Alles auswählen
procedure UTF8FixBroken(var S: string);
begin
if S='' then exit;
if FindInvalidUTF8Character(PChar(S),length(S))<0 then exit;
...
Werde mal testen, ob es passt

Vielen Dank nochmal (hatte ich bei meiner vorherigen Durchsicht irgendwie nicht gesehen).

EDIT: Mein Testprogramm, mit diversen mir Probleme bereitenden Texten, funktioniert tadellos mit UTF8FixBroken.



Code: Alles auswählen
type
TLiveSelection = (lsMoney, lsChilds, lsTime);
TLive = Array[0..1] of TLiveSelection;