Zitat:
Wieso geht da was nur bis $FFFF?
UTF-16 (UnicodeString/WideString) => 2 Byte pro Zeichen => 16 Bit pro Zeichen => 2^16 = 65536 Werte pro Zeichen => 65535 = $FFFF
Und das darüber ($010000 bis $1FFFFF) wird mit den Surrogates dargestellt.
Also, in UFT8Decode und Co. sind die Surrogates nicht implementiert und ansonsten ist es auch garantiert nicht möglich diese über eine billige (direkte) 1zu1-Ordinal>Character-Umrechnung hinzubekommen, denn Surrogate-Pairs sind 2 Zeichen und nicht nur 1 Zeichen.
Ach ja, nur nochmal zum Nachdenken:
Was macht
Chr?
einen Ordinalwert in ein Zeichen umwandeln.
Und ist ein String ein ordinaler Wert?