Delphi 2009 Unicode字符大小
发布时间:2020-12-15 04:32:19 所属栏目:大数据 来源:网络整理
导读:我刚刚获得Delphi 2009并且之前已经阅读了一些关于由于切换到Unicode字符串而可能需要的修改的文章. 大多数情况下,提到sizeof(char)不再保证为1. 但是为什么这对于字符串操作会有趣呢? 例如,如果我使用AnsiString:=’Test’并对String(现在是unicode)执行
我刚刚获得Delphi 2009并且之前已经阅读了一些关于由于切换到Unicode字符串而可能需要的修改的文章.
大多数情况下,提到sizeof(char)不再保证为1. 但是为什么这对于字符串操作会有趣呢? 例如,如果我使用AnsiString:=’Test’并对String(现在是unicode)执行相同操作,那么我得到Length()= 4,这对于两种情况都是正确的. 如果我进行字符串操作,为什么我会对char的实际大小感兴趣呢? 谢谢你的帮助! 解决方法
使用Unicode SizeOf(SomeChar)<>长度(SomeChar).基本上,字符串的长度小于其字符大小的总和.只要你不假设SizeOf(Char)= 1,或者SizeOf(SomeString [x])= 1(因为两者都是FALSE)或尝试用字符交换字节,那么你应该没有任何麻烦.你正在做任何创意填充字符到Chars或Strings的地方,那么你需要使用AnsiString.
(SizeOf(SomeString)仍然是4,无论长度,因为它本质上是一个带有一些编译器魔法的指针.) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |