EF BB BF zeigt an, welche Byte Order Mark (little oder big Endian = welches Byte kommt zuerst?) benutzt wurde, bei UTF8 nicht unbedingt sinnvoll, aber z.B. Notepad setzt es - in der Folge identifiziert es einfach UTF-8. Die Delphi
IDE, zumindest ab 2005(?) verzichtet darauf und kann damit auch nichts anfangen. UTF8 ist eigentlich eindeutig identifizierbar.
0D 0A stimmt, es ist der Zeilenumbruch.
Die Deklaration von UTF8String lautet einfach
UTF8String = type string;
du arbeitest damit also genauso wie mit den üblichen Delphi-Strings. Wenn du sie anzeigen oder auswerten willst, muss konvertiert werden, sonst ist kein Unterschied zu 'normalen' AnsiStrings.