A propos des descriptions des polices Unicode

Une police Unicode peut, grâce à son jeu de caractères étendu, gérer toutes les langues et toutes les plates-formes. Les fichiers de définition de forme Unicode sont, du point de vue de leur format et de leur syntaxe, pratiquement identiques aux fichiers de définition de forme ordinaires.

La principale différence réside dans la syntaxe de l'en-tête des polices, comme l'illustre le code suivant :

*UNIFONT,6,font-name
above,below,modes,encoding,type,0 

Les paramètres nom-police , au-dessus , au-dessous et modes sont les mêmes que ceux des polices ordinaires. Les deux autres paramètres sont définis comme suit :

encodage

Encodage de police. Utilise l'une des valeurs entières ci-après.

0 Unicode

1 1 exprimé sur plusieurs octets en mode Packed code

2 Fichier formes

type

Informations sur l'incorporation des polices. Indique si la police est soumise à un accord de licence. Les polices soumises à un accord de licence ne peuvent pas être modifiées ou échangées. Les valeurs à codage binaire peuvent être ajoutées.

0 La police peut être incorporée.

1 La police ne peut pas être incorporée.

2 L'incorporation est en lecture seule.

Une autre différence importante réside dans la gestion de la référence de la forme secondaire de code 7. Si une description de forme comprend une référence de la forme secondaire de code 7, les données situées après le code7 sont interprétées en tant que valeur à 2 octets. Cela a une incidence sur le nombre total d'octets de données ( octetsdéf ) dans l'en-tête de la description de forme. Par exemple, la description de forme suivante figure dans le fichier romans.shp :

*00080,4,keuroRef
7,020AC,0

Le deuxième champ de l'en-tête représente le nombre total d'octets dans la description de forme. Si vous n'êtes pas habitué à manipuler les descriptions de police Unicode, vous pouvez avoir tendance à utiliser 3 octets plutôt que 4, ce qui provoque une erreur de compilation du fichier SHP. Cela est vrai même si le numéro de forme référencé n'appartient pas à la plage à deux octets (inférieur à 255) ; le compilateur utilise toujours deux octets pour cette valeur ; vous devez donc en tenir compte dans l'en-tête.

La seule autre différence entre les définitions de forme Unifont et les définitions de forme ordinaires réside dans les numéros de forme. Les définitions de forme Unifont fournies par le programme utilisent des numéros de forme hexadécimaux, et non des valeurs décimales. Bien que les numéros hexadécimaux ne soient pas requis, leur utilisation facilite le référencement des numéros de forme à l'aide des valeurs du caractère de contrôle \U+.