Delphi 2009 已将其字符串类型更改为使用 2 个字节来表示一个字符,这允许支持 unicode 字符集。现在当你得到 sizeof(string) 你得到 length(String) * sizeof(char) 。Sizeof(char) 当前为 2。
我感兴趣的是是否有人知道一种方法,它可以逐个字符地找出它是否适合单个字节,例如找出一个char是ascii还是Unicode。
我主要想知道的是,在我的字符串进入数据库(oracle、Documentum)之前,该字符串将使用多少字节。
我们需要能够预先实施限制,理想情况下(因为我们有一个庞大的安装基础),而无需更改数据库。如果字符串字段允许 12 个字节,则在 delphi 2009 中,长度为 7 的字符串将始终显示为使用 14 个字节,即使一旦它到达数据库,它只会使用 7(如果是 ascii)或 14(如果是双字节),或者介于两者之间的某个位置混合物。