我刚得到Delphi 2009,并且之前已经阅读过一些有关修改的文章,因为改用Unicode字符串可能需要进行这些修改。通常,要提到的是sizeof(char)不再保证为1。但是,为什么这对于字符串操作会很有趣?例如,如果我使用AnsiString:='Test'并对String(现在是unicode)执行相同操作,那么我得到Length()= 4,这在两种情况下都是正确的。在没有测试的情况下,我确定所有其他字符串操作函数的行为均相同,并在内部确定参数是否为unicode字符串或其他任何字符串。如果我进行字符串操作,为什么char的实际大小会引起我的兴趣?(当然,如果我使用字符串作为字符串并且不存储任何其他数据)谢谢你的帮助! 霍尔格 最佳答案 使用Unicode SizeOf(SomeChar) Length(SomeChar)。本质上,字符串的长度小于其 char 的大小之和。只要您不假设SizeOf(Char)= 1或SizeOf(SomeString [x])= 1(因为现在两者都为 FALSE ),或尝试将字节 s与 char s互换,那么您应该不会有任何麻烦。在您要进行创造性工作的任何地方,将字节填充到字符或字符串,那么您将需要使用 AnsiString 。(无论长度如何,SizeOf(SomeString)仍为4,因为它本质上是具有一些编译器魔术功能的指针。)关于delphi - Delphi 2009 + Unicode +字符大小,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/126044/