Descrição do Conjunto de Caractere (charmap) Formato de Arquivo de Origem
Propósito
Define símbolos de caracteres como codificações de caracteres.
Descrição
O arquivo de origem do conjunto de caracteres (charmap) define símbolos de caracteres como codificações de caracteres. O diretório /usr/lib/nls/charmap contém arquivos de origem charmap para locales suportados. O comando localedef reconhece duas seções em arquivos de origem charmap , a seção CHARMAP e a seção CHARSETID :
| Item | Descrição |
|---|---|
| CHARMAP | Mapeia nomes de caracteres simbólicos a pontos de código. Esta seção deve preceder todas as outras seções, e é obrigatória. |
| CHARSETID | Mapeia os pontos de código dentro do conjunto de código para um ID de conjunto de caracteres. Esta seção é opcional. |
A Seção CHARMAP
A seção CHARMAP do arquivo charmap mapeia nomes de caracteres simbólicos para os pontos de código. Todos os conjuntos de código suportados possuem o conjunto de caracteres portátil como um subconjunto adequado. Apenas símbolos que não são definidos no conjunto de caracteres portáteis devem ser definidos na seção CHARMAP . O conjunto de caracteres portáteis consiste nos símbolos de caracteres a seguir (listados por seus nomes simbólicos padronizados) e codificações:
| 'Nome do' Símbolo | Código (hexadecimal) |
|---|---|
| <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 |
A seção CHARMAP contém as seguintes seções:
- Os comandosCHARMAPcabeçalho da seção.
- Uma seção de declarações simbólicas especiais opcionais. O nome simbólico e o valor devem ser separados por um ou mais caracteres em branco. Confessa a seguir os nomes simbólicos especiais e seus significados:
Item Descrição < code_set_name> Especifica o nome do conjunto de caracteres codificados para o qual o arquivo charmap é definido. Este valor determina o valor retornado pelo subroutine nl_langinfo . O < code_set_name> deve ser especificado usando qualquer caractere do conjunto de caracteres portáteis, exceto para controle e caracteres de espaço. < mb_cur_max> Especifica o número máximo de bytes em um caractere multibyte para o conjunto de caracteres codificados. Os valores válidos são de 1 a 4. O valor padrão é 1. < mb_cur_min> Especifica o número mínimo de bytes em um caractere multibyte para o conjunto de caracteres codificados. Uma vez que todos os conjuntos de códigos suportados possuem o conjunto de caracteres portátil como um subconjunto adequado, este valor deve ser de 1. < escape_char> Especifica o caractere de escape que indica encodings em notação hexadecimal ou octal. O valor padrão é um \ (backslash). < comment_char> Especifica o caractere usado para indicar um comentário dentro de um arquivo charmap . O valor padrão é um # (sinal de libra). Com exceção de comentários opcionais seguindo uma codificação de símbolo de caracteres, os comentários devem começar com um caractere de comentário na primeira coluna de uma linha. - Instruções de mapeamento de conjunto de caracteres para o conjunto de código definido.
Cada instrução nesta seção define um nome simbólico para uma codificação de caracteres. Um símbolo de caracteres começa com o<(less-than) personagem e termina com o>(maior do que) caráter. Os caracteres entre o<(less-than) e>(greater-than) podem ser quaisquer caracteres do conjunto de caracteres portáteis, exceto para controle e caracteres de espaço. Os comandos>(greater-than) caractere pode ser usado se for escapado com o caractere de escape (conforme especificado pelo nome simbólico especial < escape_char> ). Um símbolo de caracteres não pode ultrapassar 32 caracteres de comprimento.
O formato de uma definição de símbolo de caracteres é:
Uma codificação é especificada como uma ou mais constantes de caracteres, com o número máximo de constantes de caracteres especificado pelo nome simbólico especial < mb_cur_max> . O comando localedef suporta constantes de constantes decimal, octal e hexadecimal com os seguintes formatos:<char_symbol> encoding optional comment
Alguns exemplos de definições de símbolo de caracteres são:hexadecimal constant \xddd octal constant \oddd decimal constant \dddd
Uma gama de um ou mais nomes simbólicos e valores de codificação correspondentes também pode ser definida, onde o prefixo nonnumérico para cada nome simbólico é comum, e a porção numérica do segundo nome simbólico é igual ou maior que a porção numérica do primeiro nome simbólico. Neste formato, um valor de nome simbólico consiste de zero ou mais caracteres não numéricos seguidos por um número inteiro de um ou mais dígitos decimais. Esse formato define uma série de nomes simbólicos. Por exemplo, a string<j0101>...<j0104>é interpretado como o<j0101>,<j0102>,<j0103>e<j0104>nomes simbólicos, nessa ordem.<A> \d65 decimal constant <B> \x42 hexadecimal constant <j10101> \x81\d254 mixed hex and decimal constantsEm declarações definindo faixas de nomes simbólicos, o valor codificado é o valor para o primeiro nome simbólico no intervalo. Os nomes simbólicos subsequentes possuem valores de codificação em ordem crescente. Por exemplo:
Essa instrução de mapeamento de conjunto de caracteres é interpretada da seguinte forma:<j0101>...<j0104> \d129\d254
Os nomes simbólicos devem ser únicos, mas dois ou mais nomes simbólicos podem ter o mesmo valor.<j0101> \d129\d254 <j0102> \d129\d255 <j0103> \d130\d0 <j0104> \d130\d1 - Os comandosEND CHARMAPtrailer de seção.
Exemplos
A seguir está um exemplo de uma parte de uma possível seção CHARMAP a partir de um arquivo 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 CHARMAPA Seção CHARSETID
A seção CHARSETID mapeia os pontos de código dentro do conjunto de código para um ID de conjunto de caracteres. A seção CHARSETID contém as seguintes seções:
- Os comandosCHARSETIDcabeçalho da seção.
- Mapeamentos de ID do conjunto de caracteres para os conjuntos de códigos definidos.
- Os comandosEND CHARSETIDtrailer de seção.
Os mapeamentos de ID do conjunto de caracteres são definidos por listar nomes simbólicos ou pontos de código para nomes simbólicos e seus IDs de conjuntos de caracteres associados. A seguir estão os formatos possíveis para uma instrução de mapeamento de ID do conjunto de caracteres:
<character_symbol> number
<character_symbol>...<character_symbol> number
character_constant number
character_constant...character_constant numberOs comandos<character_symbol>usado deve ter sido previamente definido na seção CHARMAP . Os comandoscharacter_constantdeve seguir o formato descrito para a seção CHARMAP .
Os mapeamentos de conjuntos de caracteres individuais são realizados indicando-se o nome simbólico (definido na seção CHARMAP ou o conjunto de caracteres portáteis) seguido pelo ID do conjunto de caracteres, ou o ponto de código associado a um nome simbólico seguido do valor do conjunto de caracteres. Nomes simbólicos e pontos de código devem ser separados a partir de um valor de ID de conjunto de caracteres por um ou mais caracteres em branco. Intervalos de pontos de código podem ser mapeados para um valor de ID de conjunto de caracteres, indicando combinações apropriadas de nomes simbólicos e valores de ponto de código como terminais ao intervalo, separados por...(ellipsis) para indicar os caracteres intermediários, e seguido pelo conjunto de caracteres ID para o intervalo. O primeiro valor de terminal deve ser menor ou igual ao segundo valor de ponto final.
Exemplos
A seguir está um exemplo de uma parte de uma possível seção CHARSETID a partir de um arquivo charmap :
CHARSETID
<space>...<nobreakspace> 0
<tilde>...<y-diaeresis> 1
END CHARSETID