Directive HIGHCHARUNICODE (Delphi)
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;