Character Set Description (charmap) Source File Format
Zweck
Definiert Zeichensymbole als Zeichencodierungen.
Beschreibung
Die Quellendatei für die Zeichensatzbeschreibung (charmap) definiert Zeichensymbole als Zeichencodierungen. Das Verzeichnis /usr/lib/nls/charmap enthält charmap -Quellendateien für unterstützte Ländereinstellungen. Der Befehl localedef erkennt zwei Abschnitte in charmap -Quellendateien, den Abschnitt CHARMAP und den Abschnitt CHARSETID :
| Element | Beschreibung |
|---|---|
| CHARMAP | Ordnet symbolische Zeichennamen Codepunkten zu. Dieser Abschnitt muss allen anderen Abschnitten vorausgehen und ist obligatorisch. |
| CHARSETID | Ordnet die Codepunkte im codierten Zeichensatz einer Zeichensatz-ID zu. Dieser Abschnitt ist optional. |
Abschnitt CHARMAP
Der Abschnitt CHARMAP der charmap -Datei ordnet symbolische Zeichennamen Codepunkten zu. Alle unterstützten codierten Zeichensätze haben den portierbaren Zeichensatz als ordnungsgemäße Untergruppe. Nur Symbole, die nicht im portierbaren Zeichensatz definiert sind, müssen im Abschnitt CHARMAP definiert werden. Der portierbare Zeichensatz besteht aus den folgenden Zeichensymbolen (aufgelistet nach ihren standardisierten symbolischen Namen) und Codierungen:
| Symbolname | Code (hexadezimal) |
|---|---|
| <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 |
Der Abschnitt CHARMAP enthält die folgenden Abschnitte:
- DerCHARMAPAbschnittsüberschrift.
- Ein optionaler Abschnitt für symbolische Namensdeklarationen. Der symbolische Name und der Wert müssen durch mindestens ein Leerzeichen getrennt sein. Im Folgenden sind die speziellen symbolischen Namen und ihre Bedeutungen aufgeführt:
Element Beschreibung < Codegruppenname> Gibt den Namen des codierten Zeichensatzes an, für den die charmap -Datei definiert ist. Dieser Wert bestimmt den Wert, der von der Subroutine nl_langinfo zurückgegeben wird. Der Wert < code_set_name> muss mit einem beliebigen Zeichen aus dem portierbaren Zeichensatz angegeben werden, mit Ausnahme von Steuerzeichen und Leerzeichen. < mb_cur_max> Gibt die maximale Anzahl Byte in einem Mehrbytezeichen für den codierten Zeichensatz an. Gültige Werte sind 1 bis 4. Der Standardwert ist 1. < mb_cur_min> Gibt die minimale Anzahl Byte in einem Mehrbytezeichen für den codierten Zeichensatz an. Da alle unterstützten codierten Zeichensätze den portierbaren Zeichensatz als richtige Untergruppe haben, muss dieser Wert 1 sein. < Escapezeichen> Gibt das Escapezeichen an, das Codierungen in Hexadezimal-oder Oktalschreibweise angibt Der Standardwert ist \ (Backslash). < Kommentarzeichen> Gibt das Zeichen an, mit dem ein Kommentar in einer charmap -Datei angegeben wird. Der Standardwert ist ein Nummernzeichen (#). Mit Ausnahme von optionalen Kommentaren, die einer Zeichensymbolcodierung folgen, müssen Kommentare mit einem Kommentarzeichen in der ersten Spalte einer Zeile beginnen. - Zeichensatzzuordnungsanweisungen für den definierten codierten Zeichensatz.
Jede Anweisung in diesem Abschnitt definiert einen symbolischen Namen für eine Zeichencodierung. Ein Zeichensymbol beginnt mit dem<(kleiner als) Zeichen und endet mit dem>(Größer-als-Zeichen). Die Zeichen zwischen den<(kleiner als) und>(Größer-als-Zeichen) kann beliebige Zeichen aus dem portierbaren Zeichensatz sein, mit Ausnahme von Steuerzeichen und Leerzeichen. Der>(Größer-als-Zeichen) kann verwendet werden, wenn es mit dem Escapezeichen versehen wird (wie durch den speziellen symbolischen Namen < Escapezeichen > angegeben). Ein Zeichensymbol darf nicht länger als 32 Zeichen sein.
Die Zeichensymboldefinition hat folgendes Format:
Eine Codierung wird als mindestens eine Zeichenkonstante angegeben, wobei die maximale Anzahl Zeichenkonstanten durch den speziellen symbolischen Namen < mb_cur_max> angegeben wird. Der Befehl localedef unterstützt Dezimal-, Oktal-und Hexadezimalkonstanten mit den folgenden Formaten:<char_symbol> encoding optional comment
Beispiele für Zeichensymboldefinitionen:hexadecimal constant \xddd octal constant \oddd decimal constant \dddd
Es kann auch ein Bereich mit einem oder mehreren symbolischen Namen und entsprechenden Codierungswerten definiert werden, wobei das nicht numerische Präfix für jeden symbolischen Namen gemeinsam ist und der numerische Teil des zweiten symbolischen Namens gleich oder größer als der numerische Teil des ersten symbolischen Namens ist. In diesem Format besteht ein symbolischer Name aus null oder mehr nicht numerischen Zeichen, gefolgt von einer ganzen Zahl mit einer oder mehreren Dezimalziffern. Dieses Format definiert eine Reihe symbolischer Namen. Beispiel: Die Zeichenfolge<j0101>...<j0104>wird interpretiert als<j0101>,<j0102>,<j0103>und<j0104>Symbolische Namen in dieser Reihenfolge.<A> \d65 decimal constant <B> \x42 hexadecimal constant <j10101> \x81\d254 mixed hex and decimal constantsIn Anweisungen, die Bereiche symbolischer Namen definieren, ist der codierte Wert der Wert für den ersten symbolischen Namen im Bereich. Nachfolgende symbolische Namen haben Codierungswerte in aufsteigender Reihenfolge. Beispiel:
Diese Zeichensatzzuordnungsanweisung wird wie folgt interpretiert:<j0101>...<j0104> \d129\d254
Symbolische Namen müssen eindeutig sein, aber mindestens zwei symbolische Namen können denselben Wert haben.<j0101> \d129\d254 <j0102> \d129\d255 <j0103> \d130\d0 <j0104> \d130\d1 - DerEND CHARMAPAbschnitt Anhänger.
Beispiele
Das folgende Beispiel zeigt einen Teil eines möglichen Abschnitts CHARMAP aus einer charmap -Datei:
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 CHARMAPAbschnitt CHARSETID
Der Abschnitt CHARSETID ordnet die Codepunkte im codierten Zeichensatz einer Zeichensatz-ID zu. Der Abschnitt CHARSETID enthält die folgenden Abschnitte:
- DerCHARSETIDAbschnittsüberschrift.
- Zeichensatz-ID-Zuordnungen für die definierten codierten Zeichensätze.
- DerEND CHARSETIDAbschnitt Anhänger.
Zeichensatz-ID-Zuordnungen werden definiert, indem symbolische Namen oder Codepunkte für symbolische Namen und ihre zugehörigen Zeichensatz-IDs aufgelistet werden. Die folgenden Formate sind für eine Zeichensatz-ID-Zuordnungsanweisung möglich:
<character_symbol> number
<character_symbol>...<character_symbol> number
character_constant number
character_constant...character_constant numberDer<character_symbol>muss zuvor im Abschnitt CHARMAP definiert worden sein. Dercharacter_constantmuss dem Format entsprechen, das im Abschnitt CHARMAP beschrieben ist.
Einzelne Zeichensatzzuordnungen werden erreicht, indem entweder der symbolische Name (definiert im Abschnitt CHARMAP oder im portierbaren Zeichensatz) gefolgt von der Zeichensatz-ID oder der einem symbolischen Namen zugeordnete Codepunkt gefolgt vom Wert der Zeichensatz-ID angegeben wird. Symbolische Namen und Codepunkte müssen durch mindestens ein Leerzeichen von einem Zeichensatz-ID-Wert getrennt werden. Bereiche von Codepunkten können einem Zeichensatz-ID-Wert zugeordnet werden, indem entsprechende Kombinationen von symbolischen Namen und Codepunktwerten als Endpunkte für den Bereich angegeben werden, getrennt durch...(Auslassungspunkte), um die Zwischenzeichen anzugeben, gefolgt von der Zeichensatz-ID für den Bereich. Der erste Endpunktwert muss kleiner-gleich dem zweiten Endpunktwert sein.
Beispiele
Das folgende Beispiel zeigt einen Teil eines möglichen Abschnitts CHARSETID aus einer charmap -Datei:
CHARSETID
<space>...<nobreakspace> 0
<tilde>...<y-diaeresis> 1
END CHARSETID