为什么有些字符常量为1字节宽,有些则为2字节宽?

Jan*_*gen 4 delphi delphi-xe2

我以为我开始理解Unicode了,但这比我好:

const
c1 = #1;   --> SizeOf() = 2
c2 = #33;  --> SizeOf() = 2
c3 = #127; --> SizeOf() = 2
c4 = #128; --> SizeOf() = 1
c5 = #160; --> SizeOf() = 1 
c6 = #161; --> SizeOf() = 1 
c7 = #255; --> SizeOf() = 1 
Run Code Online (Sandbox Code Playgroud)

谁能解释一下?Delphi XE2,默认Windows-1252代码页

谢谢Jan

klu*_*udg 8

记录在案 - 请参阅$ HIGHCHARUNICODE指令

  • EMBT应该默认为$ HIGHCHARUNICODE = ON.我知道它的存在但不看,假设一致的行为作为标准,并且异常的编译器指令(例如,为了向后兼容) (2认同)