Format de fichier source de description de jeu de caractères (charmap)
Objectif
Définit les symboles de caractères comme des codages de caractères.
Descriptif
Le fichier source de description de jeu de caractères (charmap) définit les symboles de caractères comme des codages de caractères. Le répertoire /usr/lib/nls/charmap contient des fichiers source charmap pour les environnements locaux pris en charge. La commande localedef reconnaît deux sections dans les fichiers source charmap , la section CHARMAP et la section CHARSETID :
| Article | Descriptif |
|---|---|
| CARTE | Mappe les noms de caractères symboliques à des points de code. Cette section doit précéder toutes les autres sections et est obligatoire. |
| CHARSETID | Mappe les points de code du jeu de codes à un ID de jeu de caractères. Cette section est facultative. |
Section CHARMAP
La section CHARMAP du fichier charmap mappe les noms de caractères symboliques aux points de code. Tous les jeux de codes pris en charge ont le jeu de caractères portable comme sous-ensemble approprié. Seuls les symboles qui ne sont pas définis dans le jeu de caractères portable doivent être définis dans la section CHARMAP . Le jeu de caractères portable se compose des symboles de caractères suivants (répertoriés par leurs noms symboliques normalisés) et des codages:
| Symbole | Code (hexadécimal) |
|---|---|
| <NUL> | 000 |
| <SOH>> | 001 |
| <STX> | 002 |
| <ETX> | 003 |
| <EOT> | 004 |
| <ENQ> | 005 |
| <ACK> | 006 |
| <alert> | 007 |
| <backspace> | 008 |
| <tab> | 009 |
| <new-line> | 00A |
| <vertical-tab> | 00B |
| <form-feed> | 00C |
| <carriage-return> | 00D |
| <SO> | 00E |
| <SI> | 00F |
| <DLE> | 010 |
| <DC1> | 011 |
| <DC2> | 012 |
| <DC3> | 013 |
| <DC4> | 014 |
| <NAK> | 015 |
| <SYN> | 016 |
| <ETB> | 017 |
| <CAN> | 018 |
| <EM> | 019 |
| <SUB> | 01A |
| <ESC> | 01B |
| <IS4> | 01C |
| <IS3> | 01D |
| <IS2> | 01E |
| <IS1> | 01F |
| <space> | 020 |
| <exclamation-mark> | 021 |
| <quotation-mark> | 022 |
| <number-sign> | 023 |
| <dollar-sign> | 024 |
| <percent> | 025 |
| <ampersand> | 026 |
| <apostrophe> | 027 |
| <left-parenthesis> | 028 |
| <right-parenthesis> | 029 |
| <asterisk> | 02A |
| <plus-sign> | 02B |
| <comma> | 02C |
| <hyphen> | 02D |
| <period> | 02E |
| <slash> | 02F |
| <zero> | 030 |
| <one> | 031 |
| <two> | 032 |
| <three> | 033 |
| <four> | 034 |
| <five> | 035 |
| <six> | 036 |
| <seven> | 037 |
| <eight> | 038 |
| <nine> | 039 |
| <colon> | 03A |
| <semi-colon> | 03B |
| <less-than> | 03C |
| <equal-sign> | 03D |
| <greater-than> | 03E |
| <question-mark> | 03F |
| <commercial-at> | 040 |
| <A> | 041 |
| <B> | 042 |
| <C> | 043 |
| <D> | 044 |
| <E> | 045 |
| <F> | 046 |
| <G> | 047 |
| <H> | 048 |
| <I> | 049 |
| <J> | 04A |
| <K> | 04B |
| <L> | 04C |
| <M> | 04D |
| <N> | 04E |
| <O> | 04F |
| <P> | 050 |
| <Q> | 051 |
| <R> | 052 |
| <S> | 053 |
| <T> | 054 |
| <U> | 055 |
| <V> | 056 |
| <W> | 057 |
| <X> | 058 |
| <Y> | 059 |
| <Z> | 05A |
| <left-bracket> | 05B |
| <backslash> | 05C |
| <right-bracket> | 05D |
| <circumflex> | 05E |
| <underscore> | 05F |
| <grave-accent> | 060 |
| <a> | 061 |
| <b> | 062 |
| <c> | 063 |
| <d> | 064 |
| <e> | 065 |
| <f> | 066 |
| <g> | 067 |
| <h> | 068 |
| <i> | 069 |
| <j> | 06A |
| <k> | 06B |
| <l> | 06C |
| <m> | 06D |
| <n> | 06E |
| <o> | 06F |
| <p> | 070 |
| <q> | 071 |
| <r> | 072 |
| <s> | 073 |
| <t> | 074 |
| <u> | 075 |
| <v> | 076 |
| <w> | 077 |
| <x> | 078 |
| <y> | 079 |
| <z> | 07A |
| <left-brace> | 07B |
| <vertical-line> | 07C |
| <right-brace> | 07D |
| <tilde> | 07E |
| <DEL> | 07F |
La section CHARMAP contient les sections suivantes:
- :NONE.CHARMAPen-tête de section.
- Section facultative de déclarations de nom symbolique spécial. Le nom symbolique et la valeur doivent être séparés par un ou plusieurs caractères blancs. Les noms symboliques spéciaux et leur signification sont les suivants:
Article Descriptif < nom_ensemble> Indique le nom du jeu de caractères codés pour lequel le fichier charmap est défini. Cette valeur détermine la valeur renvoyée par la sous-routine nl_langinfo . < code_set_name> doit être spécifié à l'aide de n'importe quel caractère du jeu de caractères portable, à l'exception des caractères de contrôle et d'espace. < max_cours_mb> Indique le nombre maximal d'octets dans un caractère multioctet pour le jeu de caractères codés. Les valeurs admises sont comprises entre 1 et 4. La valeur par défaut est 1. < mb_cour_min> Indique le nombre minimal d'octets dans un caractère multioctet pour le jeu de caractères codés. Etant donné que tous les jeux de codes pris en charge ont le jeu de caractères portable comme sous-ensemble approprié, cette valeur doit être 1. < charte_échappement > Indique le caractère d'échappement qui indique les codages en notation hexadécimale ou octale. La valeur par défaut est \ (barre oblique inversée). < charte_comment_> Indique le caractère utilisé pour indiquer un commentaire dans un fichier charmap . La valeur par défaut est # (signe dièse). A l'exception des commentaires facultatifs qui suivent un codage de symbole de caractère, les commentaires doivent commencer par un caractère de commentaire dans la première colonne d'une ligne. - Instructions de mappage de jeu de caractères pour le jeu de codes défini.
Chaque instruction de cette section définit un nom symbolique pour un codage de caractères. Un symbole de caractère commence par le<(less-than) et se termine par le caractère>(greater-than). Les caractères entre les<(inférieur à) et>(greater-than) peut être n'importe quel caractère du jeu de caractères portable, à l'exception des caractères de contrôle et d'espace. :NONE.>Le caractère (greater-than) peut être utilisé s'il est échappé avec le caractère d'échappement (comme indiqué par le nom symbolique spécial < escape_char> ). Un symbole alphanumérique ne peut pas dépasser 32 caractères.
Le format d'une définition de symbole de caractère est le suivant:
Un codage est spécifié sous la forme d'une ou de plusieurs constantes de caractères, avec le nombre maximal de constantes de caractères spécifié par le nom symbolique spécial < mb_cur_max> . La commande localedef prend en charge les constantes décimales, octales et hexadécimales avec les formats suivants:<char_symbol> encoding optional comment
Voici quelques exemples de définitions de symboles de caractères:hexadecimal constant \xddd octal constant \oddd decimal constant \dddd
Une plage d'un ou de plusieurs noms symboliques et de valeurs de codage correspondantes peut également être définie, où le préfixe non numérique de chaque nom symbolique est commun, et la partie numérique du deuxième nom symbolique est égale ou supérieure à la partie numérique du premier nom symbolique. Dans ce format, une valeur de nom symbolique se compose de zéro ou plusieurs caractères non numériques suivis d'un entier d'un ou de plusieurs chiffres décimaux. Ce format définit une série de noms symboliques. Par exemple, la chaîne<j0101>...<j0104>est interprété comme le<j0101>,<j0102>,<j0103>et<j0104>noms symboliques, dans cet ordre.<A> \d65 decimal constant <B> \x42 hexadecimal constant <j10101> \x81\d254 mixed hex and decimal constantsDans les instructions définissant des plages de noms symboliques, la valeur codée est la valeur du premier nom symbolique de la plage. Les noms symboliques suivants ont des valeurs de codage par ordre croissant. Par exemple :
Cette instruction de mappage de jeu de caractères est interprétée comme suit:<j0101>...<j0104> \d129\d254
Les noms symboliques doivent être uniques, mais plusieurs noms symboliques peuvent avoir la même valeur.<j0101> \d129\d254 <j0102> \d129\d255 <j0103> \d130\d0 <j0104> \d130\d1 - :NONE.END CHARMAPen fin de section.
Exemples
Voici un exemple d'une partie d'une section CHARMAP possible à partir d'un fichier charmap :
CHARMAP
<code_set_name> ISO8859-1
<mb_cur_max> 1
<mb_cur_min> 1
<escape_char> \
<comment_char> #
<NUL> \x00
<SOH> \x01
<STX> \x02
<ETX> \x03
<EOT> \x04
<ENQ> \x05
<ACK> \x06
<alert> \x07
<backspace \x09
<tab> \x09
<newline> \x0a
<vertical-tab> \x0b
<form-feed> \x0c
<carriage-return> \x0d
END CHARMAPSection CHARSETID
La section CHARSETID mappe les points de code du jeu de codes à un ID de jeu de caractères. La section CHARSETID contient les sections suivantes:
- :NONE.CHARSETIDen-tête de section.
- Mappages d'ID de jeu de caractères pour les jeux de codes définis.
- :NONE.END CHARSETIDen fin de section.
Les mappages d'ID de jeu de caractères sont définis en répertoriant des noms symboliques ou des points de code pour les noms symboliques et leurs ID de jeu de caractères associés. Les formats possibles pour une instruction de mappage d'ID de jeu de caractères sont les suivants:
<character_symbol> number
<character_symbol>...<character_symbol> number
character_constant number
character_constant...character_constant number:NONE.<character_symbol>doit avoir été défini précédemment dans la section CHARMAP . :NONE.character_constantdoit respecter le format décrit pour la section CHARMAP .
Les mappages de jeux de caractères individuels sont réalisés en indiquant soit le nom symbolique (défini dans la section CHARMAP ou le jeu de caractères portable) suivi de l'ID de jeu de caractères, soit le point de code associé à un nom symbolique suivi de la valeur de l'ID de jeu de caractères. Les noms symboliques et les points de code doivent être séparés d'une valeur d'ID de jeu de caractères par un ou plusieurs caractères blancs. Les plages de points de code peuvent être mappées à une valeur d'ID de jeu de caractères en indiquant des combinaisons appropriées de noms symboliques et de valeurs de point de code comme noeuds finaux de la plage, séparés par...(points de suspension) pour indiquer les caractères intermédiaires, suivis de l'ID de jeu de caractères de la plage. La valeur du premier noeud final doit être inférieure ou égale à la valeur du second noeud final.
Exemples
Voici un exemple d'une partie d'une section CHARSETID possible à partir d'un fichier charmap :
CHARSETID
<space>...<nobreakspace> 0
<tilde>...<y-diaeresis> 1
END CHARSETID