Dann ist das wohl kein UTF-8 und somit ist es falsch diese Umwandlung vorzunehmen.
Und
UTF8Encode UTF8Decode gibt einfach einen Leerstring zurück, wenn es kein valides UTF-8 ist, während TEncodiung korrekt einen Fehler wirft.
Außerdem ist slist.Text ein UnicodeString und UTF8Encode an der Stelle sowas von sinnlos.
slist.Text ist
Unicode (slist.LoadFromFile hat UTF-8 bereits übersetzt, wenn das BOM vorhanden war), UTF8Encode wandelt es nach UTF-8 um, Delphi erkennt bei der Zuweisung, daß slist.Text ein UnicodeString ist und wandelt das UTF-8 vom UTF8Encode wieder nach
Unicode um ... es ändert sich also nichts.