문자 세트 설명(charmap) 소스 파일 형식
용도
문자 기호를 문자 인코딩으로 정의합니다.
설명
문자 세트 설명 (charmap) 소스 파일은 문자 기호를 문자 인코딩으로 정의합니다. /usr/lib/nls/charmap 디렉토리에는 지원되는 로케일에 대한 charmap 소스 파일이 들어 있습니다. localedef 명령은 charmap 소스 파일에서 두 개의 섹션 ( CHARMAP 섹션 및 CHARSETID 섹션) 을 인식합니다.
| 항목 | 설명 |
|---|---|
| CHARMAP | 기호 문자 이름을 코드 포인트에 맵핑합니다. 이 섹션은 다른 모든 섹션보다 선행해야 하며 필수입니다. |
| 문자 집합 ID | 코드 세트 내의 코드 포인트를 문자 세트 ID에 맵핑합니다. 이 섹션은 선택사항입니다. |
CHARMAP 섹션
charmap 파일의 CHARMAP 섹션은 기호 문자 이름을 코드 포인트에 맵핑합니다. 지원되는 모든 코드 세트에는 적절한 서브세트로 휴대용 문자 세트가 있습니다. 휴대용 문자 세트에 정의되지 않은 기호만 CHARMAP 섹션에 정의해야 합니다. 휴대용 문자 세트는 다음 문자 기호 (표준화된 기호 이름으로 나열됨) 및 인코딩으로 구성됩니다.
| 기호명 | 코드 (16진) |
|---|---|
| <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 |
CHARMAP 섹션에는 다음 섹션이 포함되어 있습니다.
- 다음CHARMAP섹션 헤더.
- 선택적 특수 기호 이름-선언 섹션입니다. 기호 이름 및 값은 하나 이상의 공백 문자로 구분해야 합니다. 다음은 특수 기호 이름 및 해당 의미입니다.
항목 설명 < code_set_name> charmap 파일이 정의되는 코드화 문자 세트의 이름을 지정합니다. 이 값은 nl_langinfo 서브루틴이 리턴하는 값을 판별합니다. < code_set_name> 은 제어 및 공백 문자를 제외한 휴대용 문자 세트의 모든 문자를 사용하여 지정해야 합니다. < mb_cur_max> 인코딩된 문자 세트에 대한 멀티바이트 문자의 최대 바이트 수를 지정합니다. 유효한 값은 1-4입니다. 디폴트 값은 1입니다. < mb_cur_min> 인코딩된 문자 세트에 대한 멀티바이트 문자의 최소 바이트 수를 지정합니다. 지원되는 모든 코드 세트에 적절한 서브세트로 휴대용 문자 세트가 있으므로 이 값은 1이어야 합니다. < escape_char> (< escape_char>) 16진또는 8진표기법으로 인코딩을 표시하는 이스케이프 문자를 지정합니다. 기본값은\(백슬래시) 입니다. < comment_char> charmap 파일 내에서 주석을 표시하는 데 사용되는 문자를 지정합니다. 기본값은 # (파운드 기호) 입니다. 문자 기호 인코딩 뒤에 오는 선택적 주석을 제외하고 주석은 행의 첫 번째 열에서 주석 문자로 시작해야 합니다. - 정의된 코드 세트에 대한 문자 세트 맵핑 명령문입니다.
이 섹션의 각 명령문은 문자 인코딩에 대한 기호 이름을 정의합니다. 문자 기호는<(보다 작음) 문자로 끝나고>(보다 큰) 문자입니다. 사이의 문자<(미만) 및>(greater-than) 은 제어 및 공백 문자를 제외한 휴대용 문자 세트의 모든 문자일 수 있습니다. 다음>(보다 큼) 문자는 이스케이프 문자 ( < escape_char> 특수 기호 이름으로 지정됨) 로 이스케이프되는 경우 사용할 수 있습니다. 문자 기호의 길이는 32자를 초과할 수 없습니다.
문자 기호 정의의 형식은 다음과 같습니다.
인코딩은 하나 이상의 문자 상수로 지정되며 최대 문자 상수 수는 < mb_cur_max> 특수 기호 이름으로 지정됩니다. localedef 명령은 다음 형식의 10진수, 8진수및 16진상수를 지원합니다.<char_symbol> encoding optional comment
문자 기호 정의의 몇 가지 예는 다음과 같습니다.hexadecimal constant \xddd octal constant \oddd decimal constant \dddd
하나 이상의 기호 이름 및 대응하는 인코딩 값의 범위가 또한 정의될 수 있으며, 여기서 각각의 기호 이름에 대한 비숫자 접두부는 공통적이고, 제2기호 이름의 숫자 부분은 제1기호 이름의 숫자 부분과 같거나 더 큽니다. 이 형식에서 기호 이름 값은 0개 이상의 숫자가 아닌 문자와 그 뒤에 오는 하나 이상의 10진수의 정수로 구성됩니다. 이 형식은 일련의 기호 이름을 정의합니다. 예를 들어, 다음 문자열은<j0101>...<j0104>다음으로 해석됩니다.<j0101>,<j0102>,<j0103>및<j0104>기호 이름을 순서대로 표시합니다.<A> \d65 decimal constant <B> \x42 hexadecimal constant <j10101> \x81\d254 mixed hex and decimal constants기호 이름의 범위를 정의하는 명령문에서 인코딩된 값은 범위에 있는 첫 번째 기호 이름의 값입니다. 후속 기호 이름에는 인코딩 값이 증가하는 순서로 있습니다. 예를 들어 다음과 같습니다.
이 문자 세트 맵핑 명령문은 다음과 같이 해석됩니다.<j0101>...<j0104> \d129\d254
기호 이름은 고유해야 하지만 둘 이상의 기호 이름이 동일한 값을 가질 수 있습니다.<j0101> \d129\d254 <j0102> \d129\d255 <j0103> \d130\d0 <j0104> \d130\d1 - 다음END CHARMAP섹션 트레일러.
예
다음은 charmap 파일에서 가능한 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 CHARMAPCHARSETID 섹션
CHARSETID 섹션은 코드 세트 내의 코드 포인트를 문자 세트 ID로 맵핑합니다. CHARSETID 섹션에는 다음 섹션이 포함되어 있습니다.
- 다음CHARSETID섹션 헤더.
- 정의된 코드 세트에 대한 문자 세트 ID 맵핑입니다.
- 다음END CHARSETID섹션 트레일러.
문자 세트 ID 맵핑은 기호 이름 또는 기호 이름의 코드 포인트 및 연관된 문자 세트 ID를 나열하여 정의됩니다. 다음은 문자 세트 ID 맵핑 명령문에 대해 가능한 형식입니다.
<character_symbol> number
<character_symbol>...<character_symbol> number
character_constant number
character_constant...character_constant number다음<character_symbol>이전에 CHARMAP 섹션에 정의되어 있어야 합니다. 다음character_constantCHARMAP 절에 설명된 형식을 따라야 합니다.
개별 문자 세트 맵핑은 기호 이름 ( CHARMAP 섹션 또는 휴대용 문자 세트에 정의됨) 과 문자 세트 ID 또는 기호 이름과 연관된 코드 포인트와 문자 세트 ID값을 차례로 표시하여 수행됩니다. 기호 이름 및 코드 포인트는 하나 이상의 공백 문자로 문자 세트 ID값과 구분되어야 합니다. 기호 이름 및 코드 포인트 값의 적절한 조합을 범위에 대한 엔드포인트로 표시하여 문자 세트 ID값에 코드 포인트 범위를 맵핑할 수 있습니다 (다음으로 구분됨)....(생략 기호) 를 사용하여 중간 문자를 표시하고 그 뒤에 범위에 대한 문자 세트 ID를 표시합니다. 첫 번째 엔드포인트 값은 두 번째 엔드포인트 값보다 작거나 같아야 합니다.
예
다음은 charmap 파일에서 가능한 CHARSETID 섹션의 일부에 대한 예제입니다.
CHARSETID
<space>...<nobreakspace> 0
<tilde>...<y-diaeresis> 1
END CHARSETID