Hier ist eine Frage aus der Abteilung "Keine Frage ist zu dumm":
Nun, wie das Thema sagt: Gibt es eine Auswirkung? Wenn ja, wie stark? Werden all die String-Literale, die ich in meinem Code und in meinen DFM-Ressourcen habe, jetzt doppelt so viel Platz in den kompilierten Binärdateien einnehmen? Wie sieht es mit der Speichernutzung zur Laufzeit von kompilierten Anwendungen aus? Werden alle String-Variablen jetzt doppelt so viel Arbeitsspeicher beanspruchen? Sollte ich mir überhaupt die Mühe machen?
Ich erinnere mich, dass diese Frage in einem der frühen Webcasts vor der Veröffentlichung gestellt wurde, aber ich kann mich nicht mehr an die Antwort erinnern. Und da die Testphase nur 14 Tage dauert, werde ich es nicht einfach selbst ausprobieren, bevor die Bibliotheken von Drittanbietern, die ich benötige, aktualisiert worden sind (angeblich in etwa einem Monat).
1 Stimmen
Im Code verwendete String-Literale werden in dem Kontext interpretiert, in dem sie tatsächlich verwendet werden, und werden dann entsprechend in die ausführbaren Daten kodiert. Mit anderen Worten, wenn ein Stringliteral einem AnsiString zugewiesen wird, wird es als Ansi kodiert. Wenn ein Literal einem UTF8String zugewiesen wird, wird es als UTF-8 kodiert. Wenn ein Literal einem UnicodeString zugewiesen wird, wird es als UTF-16 kodiert.
0 Stimmen
Der DFM unterstützt UTF-8, und das schon seit vielen Jahren. Unicode-Zeichenfolgen können entweder als UTF-8 oder UTF-16 kodiert werden.
1 Stimmen
UnicodeString-Variablen benötigen zur Laufzeit doppelt so viel RAM, ja. AnsiString, UTF8String und andere Ansi-basierte Variablen nicht.
0 Stimmen
Remy, warum veröffentlichen Sie diese Kommentare nicht als Antwort?