Die Warnung gibt dir eigentlich schon alle notwendigen Informationen:
Zitat:
W1058 Implizite String-Umwandlung mit potenziellem Datenverlust von 'WideString' zu 'RawByteString'
Utf8ToString
erwartet einen
RawByteString (also einen Byte-String ohne CodePage-Information), bekommt aber einen
WideString. Mangels besserer Information macht der Compiler dort aus dem WideString einen AnsiString mit der aktuellen CodePage und gibt diesen als RawByteString an die Funktion. Diese erwartet aber (Hint: Funktionsname) eine UTF-codierten Byte-Sequenz. Das Ergebnis sieht dann in vielen Fällen eher bescheiden aus.