gpt4 book ai didi

Delphi 2009 + Unicode + 字符大小

转载 作者:行者123 更新时间:2023-12-03 14:58:37 25 4
gpt4 key购买 nike

我刚刚获得 Delphi 2009,并且之前阅读过一些有关由于切换到 Unicode 字符串而可能需要进行的修改的文章。大多数情况下,人们提到 sizeof(char) 不再保证为 1。但是为什么这对于字符串操作会很有趣呢?

例如,如果我使用 AnsiString:='Test' 并对字符串(现在是 unicode)执行相同的操作,那么我会得到 Length() = 4,这对于两种情况都是正确的。未经测试,我确信所有其他字符串操作函数的行为方式相同,并在内部决定参数是 unicode 字符串还是其他任何内容。

如果我进行字符串操作,为什么我会对 char 的实际大小感兴趣?(当然,如果我使用字符串作为字符串而不存储任何其他数据)

感谢您的帮助! 霍尔格

最佳答案

使用 Unicode SizeOf(SomeChar) <> Length(SomeChar)。本质上,字符串的长度小于其字符的大小总和。只要您不假设 SizeOf(Char) = 1SizeOf(SomeString[x]) = 1(因为两者都是FALSE now)或尝试将 bytechar 互换,那么你就不会有任何麻烦。任何地方你要做一些创造性的事情,将 Byte 填充到 CharString 中,那么你将需要使用 AnsiString .

(无论长度如何,SizeOf(SomeString) 仍然是 4,因为它本质上是一个带有编译器魔法的指针。)

关于Delphi 2009 + Unicode + 字符大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/126044/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com