HIGHCHARUNICODE 指令(Delphi)
Delphi コンパイラ指令のリスト:インデックス への移動
種類 |
スイッチ |
構文 |
{$HIGHCHARUNICODE ON} または {$HIGHCHARUNICODE OFF} |
デフォルト |
{$HIGHCHARUNICODE OFF} |
スコープ |
ローカル |
説明
{$HIGHCHARUNICODE ON} 指令は、一連の文字 #$80 ... #$FF(#128 ... #255)の動作を制御するものです。
HIGHCHARUNICODE が OFF の場合は、
- #xxx という n 桁の 10 進リテラルはすべて AnsiChar として解析されます。
- #$xx という 2 桁の 16 進リテラルはすべて AnsiChar として解析されます。
- #$xxxx という 4 桁の 16 進リテラルはすべて WideChar として解析されます。
HIGHCHARUNICODE が ON の場合は、
- すべてのリテラルが WideChar として解析されます。
例:
以下の例では、
- (U + 0080) は制御文字です。ANSI コードページにはありません('?' に変換されます)。
- (U + 00C8) は 'È' 文字です。Win1252 コードページにあり、Win1251 コードページにはありません('E' に変換されます)。
var
A: AnsiChar;
W: WideChar;
begin
{$HIGHCHARUNICODE OFF}
A := #$80; // Ord(A) = $80
W := #$80; // Ord(W) depends on default ANSI codepage; for example
// = $0402 for Win1251 codepage ('Ђ')
// = $20AC for Win1252 codepage ('€');
{$HIGHCHARUNICODE ON}
A := #$80; // Ord(A) = $3F ('?')
W := #$80; // Ord(W) = $80
A := #200; // Ord(A) depends on default ANSI codepage; for example
// = $45 for Win1251 codepage ('E')
// = $C8 for Win1252 codepage ('È');
W := #200; // Ord(W) = 200 ($C8)
end;