我想我开始明白Unicode的,但是这个我百思不得其解:为什么某些字符常量宽1字节,其他2字节宽?
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
谁能解释? 德尔福XE2,默认的Windows 1252代码页
感谢 月
说明还http://qc.embarcadero.com/wc/qcmain.aspx?d= 100685 gotcha –
@ Arioch'The - 我不知道如何解决这个'错误',因为这真的是在Delphi中如何实现Unicode的; Ord(Ch)通常取决于默认的ANSI代码页;在具有不同ANSI代码页的系统上编译时,可以获得不同的二进制文件。 – kludg
@Serg 默认哪个?在同一个项目中,我们可以在至少三个不同的代码页中编码源... ---- 就我个人而言,我认为Ord(WideChat)应尽可能映射到UTF-16字。 Ord(AnsiChar)应映射到GetACP()字节,如果可能的话。 分别有Chr(Byte):AnsiChar和Chr(Word):WideChar; 如何处理MBCS和Unicode代理我不知道,但希望它是罕见的野兽。 –