UTF8Decode kennt keine Surrogates, also kannst du damit keine Zeichen über #$FFFF dekodieren.
Ach ja, wie wäre es, wenn du dir die Parameter und Rückgabewerte ansiehst?
Der Rückgabewert paßt also nicht zur Variable.
Delphi ab 2009 (also auch dein 2010) wandelt hier das UTF8 wieder zurück in
Unicode.
UTF8.Encode liefert UFT8 zurück und kein
Unicode (UTF8String und nicht String/UnicodeString).
Also abgesehn davon, daß dieser
Unicode-Bereich nicht umgewandelt werden kann, dann wäre, selbst wenn es ginge, alles umsonst.
Unicode > UTF8 >
Unicode