UTF-8 erstmal garnicht.
IniFile.ReadString einen String und seit Delphi 2009 ist ein String
Unicode. (wenn, dann ist der Fehler früher, beim Auslesen und Decodieren der Datei)
INI kann offiziell nur
ANSI oder
Unicode (UTF-16 mit BOM).
Wird eine neue Datei erstellt und da landen
Unicode-Zeichen drin, dann wird sie als
Unicode erstellt.
So weit erstmal zur "offiziellen"
API von Windows.
In wie weit Codegear/Embarcadero beim TMemIniFile ab Delphi 2009 das auch beachtet haben, weiß ich grade nicht.
"Text"-Dateien ohne BOM werden im Windows "allgemein" erstmal als
ANSI angesehn.
Unter Linux/Apple ist die Standard-Codierung für solche Dateien dagegen UTF-8.