Delphi 2009已将其字符串类型更改为使用2个字节来表示字符,这允许支持unicode字符集.现在当你得到sizeof(string)时,你得到length(String)*sizeof(char).Sizeof(char)目前为2.
我感兴趣的是,是否有人知道在逐个字符的基础上可以找出它是否适合单个字节的方式,例如找出char是ascii还是Unicode.
我最感兴趣的是,在我的字符串进入数据库(oracle,Documentum)之前,字符串将耗尽多少字节.
我们需要能够事先强制执行限制(因为我们拥有大量的安装基础),而无需更改数据库.如果字符串字段允许12个字节,则在delphi 2009中,长度为7的字符串将始终显示为使用14个字节,即使它到达数据库时,如果是ascii则仅使用7或如果是双字节则使用14,或者如果是混合物.
你可以检查一下这个角色的价值:
if ord(c) < 128 then // is an ascii character