我刚刚发布了一个关于Unicode character constants的问题,其中 $HIGHCHARUNICODE 似乎是原因。现在使用默认的 $HIGHCHARUNICODE OFF (Delphi XE2),为什么会这样:
const
AllLowByteValues =#$00#$01#$02#$03#$04#$05#$06#$07#$08#$09#$0a#$0b#$0c#$0d#$0e#$0f;
AllHighByteValues=#$D0#$D1#$D2#$D3#$D4#$D5#$D6#$D7#$D8#$D9#$Da#$Db#$Dc#$Dd#$De#$Df;
==> Sizeof(AllLowByteValues[1]) = 2
==> Sizeof(AllHighByteValues[1]) = 2
如果“所有十六进制 #$xx 2 位文字都被解析为 AnsiChar”对于 #$80 ... #$FF,那么为什么 AllHighByteValues 是 unicode 字符串而不是 ANSIString?