Wenn da kein gültiges UTF-8 im String drin ist, dann wird wortlos '' zurückgegeben.
Fazit: Bei dir ist da kein UTF-8 drin, sondern irgendwas anderes aus der
ANSI-Welt.
Schau dir mal an was da an Zeichen über #127 vorhanden ist.
Lösung:
Delphi-Quellcode:
S := UTF8Decode(A);
if (S = '') and (A <> '') then
raise Eception.Create('ungültiges UTF-8'); //raise EEncodingError.CreateRes(@SInvalidSourceArray); aus System.SysConst
Bei TEncoding.UTF8.GetString wird dagegen direkt eine
Exception ausgelöst.