Wie funktionieren die neuen Zeichenfolgentypen in Delphi 2009/2010?

Ich muss eine große Legacy-Anwendung nach Delphi 2009 konvertieren, die überall Zeichenfolgen, AnsiStrings, WideStrings und UTF8-Daten verwendet, und es fällt mir schwer zu verstehen, wie die neuen Zeichenfolgentypen funktionieren und wie sie verwendet werden sollten.

Die Anwendung unterstützte Unicode mithilfe von TntUnicodeControls vollständig, und es gibt DLLs von Drittanbietern, die Zeichenfolgen in bestimmten Codierungen erfordern, hauptsächlich UTF8 und UTF16, wodurch die Konvertierungsaufgabe nicht so trivial ist, wie man vermuten würde.

Ich habe vor allem Probleme mit den C-DLL-Aufrufen und der Auswahl des richtigen Typs. Ich habe auch den Eindruck, dass viele implizite Zeichenfolgenkonvertierungen stattfinden, da eine der DLLs scheinbar immer UTF-8-codierte Zeichenfolgen empfängt, unabhängig davon, wie die Delphi-Zeichenfolge codiert ist.

Kann jemand bitte einen kurzen Überblick über die neuen Delphi 2009-String-Typen UnicodeString und RawByteString geben, vielleicht einige Verwendungshinweise und mögliche Fallstricke bei der Konvertierung einer Anwendung vor 2009?

Antworten auf die Frage(5)

Ihre Antwort auf die Frage