HIGHCHARUNICODE 指令(Object Pascal)

提供: Appmethod Topics
移動先: 案内検索

Object Pascal コンパイラ指令のリスト:インデックス への移動

種類

スイッチ

構文

{$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;

関連項目