Directive HIGHCHARUNICODE (Delphi)

De RAD Studio
Aller à : navigation, rechercher

Remonter à Liste des directives de compilation Delphi - Index

Type

Commutateur

Syntaxe

{$HIGHCHARUNICODE ON} ou {$HIGHCHARUNICODE OFF}

Par défaut

{$HIGHCHARUNICODE OFF}

Portée

Locale



Remarques

La directive {$HIGHCHARUNICODE ON} contrôle le comportement des caractères #$80 ... #$FF (#128 ... #255).

Quand HIGHCHARUNICODE vaut OFF :

  • Tous les littéraux à n chiffres #xxx décimaux sont analysés en tant que AnsiChar.
  • Tous les littéraux à 2 chiffres #$xx hexadécimaux sont analysés en tant que AnsiChar.
  • Tous les littéraux à 4 chiffres #$xxxx hexadécimaux sont analysés en tant que WideChar.

Quand HIGHCHARUNICODE vaut ON :

  • Tous les littéraux sont analysés en tant que WideChar.


Exemple :

Dans l'exemple suivant :

  • (U + 0080) est un caractère de contrôle ; il est absent sur les pages de codes ANSI (converti en '?').
  • (U + 00C8) est un caractère 'È' ; il est présent sur la page de codes Win1252 et absent sur la page de codes Win1251 (converti en '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;

Voir aussi