Eine Prüfroutine für UTF-8 könnte etwa so aussehen (ungetestet)
Billigvariante: (testet nicht nur, sondern wandelt um und braucht zusätzlichen etwas
RAM)
Delphi-Quellcode:
function IsUTF8(Bytes: RawByteString{oder TBytes}): Boolean;
begin
Result := {(Bytes = '') and} (UTF8ToString(Bytes) <> ''); // inkl. dem Auskommentierten, wird auch ein Leerstring als UTF-8 erkannt, auch wenn "garnichts" im String ist.
end;
Der Code in der System-
Unit wirft keine
Exception, sondern gibt einfach nichts zurück (Leerstring), wenn es man kein valides UTF-8 rein gibt.