Kleiner Hinweis: Der Algorithmus konvertiert zwischen CESU-8 und UTF-16 („WideString“). Außerdem kann er zwischen UTF-8 und UCS-2 konvertieren. Für die Umwandlung zwischen UTF-8 und
Unicode ist die Unterstützung von 4-Byte-Codes nötig, für die Umwandlung zwischen UTF-8 und UTF-16 fehlt zusätzlich die Unterstützung von Surrogates (die sind in CESU-8 schon drin, daher funktioniert dein Code problemlos mit CESU-8).
Delphi Rio nutzt doch als Typ für string einen WideString oder auch UnicodeString. Du schreibst, das ist UTF-16.
UTF-16 hat aber doch ggf. mehr als 2 Byte pro Zeichen.
Und WideString sind doch immer fest 2 Byte pro Zeichen, oder irre ich?
Bin jetzt eher verwirrt.
Bezüglich CESU-8. Was erzeugt TEncoding.UTF8 in Delphi denn?
Ich brauche auf jeden Fall einen Konverter von einem String aus Delphi 10.3 und einem
XML UTF-8 Datenstrom.
Komm ich das mit dem CESU-8 zurecht?
Vielen Dank schonmal für die Hilfe
Oliver