Was passiert dann, wenn ich die ohne irgendwelche Umcodierungen direkt als AnsiString (genauer gesagt als string[N]) speichere,
Wenn du es nicht selber umkodierst, dann wird die CodePage des Systems zum Speichern verwendet.
Also auf einem russischen System wird nur der rusische Teil in
ANSI gespeichert.
Ließt man nun diesen AnsiString in einem anderem System aus, so wird da ebenfalls die SystemCodePage verwendet und es wird falsch ausgelesen.
Das ist in unserer Anwendung ja bisher schon so, also erstmal keine Verschlechterung.
Also lieber WideString nutzen, oder
Delphi-Quellcode:
TMyStoredRecord = record
EinString: array[1..50] of WideChar;
end;
Das geht eben nicht, ohne eine Unmenge von Code anzufassen. Das wollen wir momentan vermeiden. Für eine Prüfung, ob nicht in der Codepage vefügbare Zeichen eingegeben wurden, finde ich vermutlich eine zentrale Stelle, um den Benutzer dann zu warnen. (Wenn es keine in die
Unicode-Edits eingebaute Möglichkeit gibt.)