Delphi 2009 では、文字列型が 2 バイトを使用して文字を表すように変更されました。これにより、Unicode 文字セットがサポートされるようになりました。sizeof(string) を取得すると、 length(String) * sizeof(char) が取得されます。Sizeof(char) は現在 2 です。
私が興味を持っているのは、文字ごとに1バイトに収まるかどうかを確認できる方法を誰かが知っているかどうかです。たとえば、文字がasciiかUnicodeかを確認します。
私が主に知りたいのは、文字列がデータベース (oracle、Documentum) に送られる前に、文字列が何バイト使用するかということです。
データベースを変更せずに、事前に、そして理想的には (大規模なインストール ベースがあるため) 制限を適用できる必要があります。文字列フィールドが 12 バイトを許可する場合、Delphi 2009 では、長さ 7 の文字列は常に 14 バイトを使用していると表示されますが、データベースに到達すると、ascii の場合は 7、2 バイトの場合は 14、または混合。