Every supported locale refers to the portable character set, which consists of 128 characters (7-bit code). The following table shows the symbolic name, the corresponding glyph, the class name of the POSIX locale, and the ASCII and EBCDIC codes for every character in the portable character set.
Symbolic name | Glyphs | Class of | ASCII | EBCDIC | |
decimal | hex | hex | |||
<NUL> | control | 0 | 00 | 00 | |
<SOH> | control | 1 | 01 | 01 | |
<STX> | control | 2 | 02 | 02 | |
<ETX> | control | 3 | 03 | 03 | |
<EOT> | control | 4 | 04 | 37 | |
<ENQ> | control | 5 | 05 | 2D | |
<ACK> | control | 6 | 06 | 2E | |
<alert> | control | 7 | 07 | 2F | |
<backspace> | control | 8 | 08 | 16 | |
<tab> | control space blank | 9 | 09 | 05 | |
<newline> | control space | 10 | 0A | 15 | |
<vertical--tab> | control space | 11 | 0B | 0B | |
<form-feed> | control space | 12 | 0C | 0C | |
<carriage-return> | control space | 13 | 0D | 0D | |
<SO> | control | 14 | 0E | 0E | |
<SI> | control | 15 | 0F | 0F | |
<DLE> | control | 16 | 10 | 10 | |
<DC1> | control | 17 | 11 | 11 | |
<DC2> | control | 18 | 12 | 12 | |
<DC3> | control | 19 | 13 | 13 | |
<DC4> | control | 20 | 14 | 3C | |
<NAK> | control | 21 | 15 | 3D | |
<SYN> | control | 22 | 16 | 32 | |
<ETB> | control | 23 | 17 | 26 | |
<CAN> | control | 24 | 18 | 18 | |
<EM> | control | 25 | 19 | 19 | |
<SUB> | control | 26 | 1A | 3F | |
<ESC> | control | 27 | 1B | 27 | |
<IS4> | control | 28 | 1C | 1C | |
<IS3> | control | 29 | 1D | 1D | |
<IS2> | control | 30 | 1E | 1E | |
<IS1> | control | 31 | 1F | 1F | |
<space> | space blank | 32 | 20 | 40 | |
<exclamation-mark> | ! | punct | 33 | 21 | 5A |
<quotation-mark> | " | punct | 34 | 22 | 7F |
<number-sign> | # | punct | 35 | 23 | 7B |
<dollar-sign> | $ | punct | 36 | 24 | 5B |
<percent-sign> | % | punct | 37 | 25 | 6C |
<ampersand> | & | punct | 38 | 26 | 50 |
<apostrophe> | ' | punct | 39 | 27 | 7D |
<left-parenthesis> | ( | punct | 40 | 28 | 4D |
<right-parenthesis> | ) | punct | 41 | 29 | 5D |
<asterisk> | * | punct | 42 | 2A | 5C |
<plus-sign> | + | punct | 43 | 2B | 4E |
<comma> | , | punct | 44 | 2C | 6B |
<hyphen> | - | punct | 45 | 2D | 60 |
<period> | . | punct | 46 | 2E | 4B |
<slash> | / | punct | 47 | 2F | 61 |
<zero> | 0 | digit xdigit | 48 | 30 | F0 |
<one> | 1 | digit xdigit | 49 | 31 | F1 |
<two> | 2 | digit xdigit | 50 | 32 | F2 |
<three> | 3 | digit xdigit | 51 | 33 | F3 |
<four> | 4 | digit xdigit | 52 | 34 | F4 |
<five> | 5 | digit xdigit | 53 | 35 | F5 |
<six> | 6 | digit xdigit | 54 | 36 | F6 |
<seven> | 7 | digit xdigit | 55 | 37 | F7 |
<eigth> | 8 | digit xdigit | 56 | 38 | F8 |
<nine> | 9 | digit xdigit | 57 | 39 | F9 |
<colon> | : | punct | 58 | 3A | 7A |
<semicolon> | ; | punct | 59 | 3B | 5E |
<less-than-sign> | < | punct | 60 | 3C | 4C |
<equals-sign> | = | punct | 61 | 3D | 7E |
<greater-than-sign> | > | punct | 62 | 3E | 6E |
<question-mark> | ? | punct | 63 | 3F | 6F |
<commercial-at> | @ | punct | 64 | 40 | 7C |
<A> | A | upper xdigit | 65 | 41 | C1 |
<B> | B | upper xdigit | 66 | 42 | C2 |
<C> | C | upper xdigit | 67 | 43 | C3 |
<D> | D | upper xdigit | 68 | 44 | C4 |
<E> | E | upper xdigit | 69 | 45 | C5 |
<F> | F | upper xdigit | 70 | 46 | C6 |
<G> | G | upper | 71 | 47 | C7 |
<H> | H | upper | 72 | 48 | C8 |
<I> | I | upper | 73 | 49 | C9 |
<J> | J | upper | 74 | 4A | D1 |
<K> | K | upper | 75 | 4B | D2 |
<L> | L | upper | 76 | 4C | D3 |
<M> | M | upper | 77 | 4D | D4 |
<N> | N | upper | 78 | 4E | D5 |
<O> | O | upper | 79 | 4F | D6 |
<P> | P | upper | 80 | 50 | D7 |
<Q> | Q | upper | 81 | 51 | D8 |
<R> | R | upper | 82 | 52 | D9 |
<S> | S | upper | 83 | 53 | E2 |
<T> | T | upper | 84 | 54 | E3 |
<U> | U | upper | 85 | 55 | E4 |
<V> | V | upper | 86 | 56 | E5 |
<W> | W | upper | 87 | 57 | E6 |
<X> | X | upper | 88 | 58 | E7 |
<Y> | Y | upper | 89 | 59 | E8 |
<Z> | Z | upper | 90 | 5A | E9 |
<left-square-bracket> | [ | punct | 91 | 5B | BB |
<backslash> | \ | punct | 92 | 5C | BC |
<right-square-bracket> | ] | punct | 93 | 5D | BD |
<circumflex> | ^ | punct | 94 | 5E | 6A |
<underscore> | _e | punct | 95 | 5F | 6D |
<grave-accent> | ` | punct | 96 | 60 | 4A |
<a> | a | lower xdigit | 97 | 61 | 81 |
<b> | b | lower xdigit | 98 | 62 | 82 |
<c> | c | lower xdigit | 99 | 63 | 83 |
<d> | d | lower xdigit | 100 | 64 | 84 |
<e> | e | lower xdigit | 101 | 65 | 85 |
<f> | f | lower xdigit | 102 | 66 | 86 |
<g> | g | lower | 103 | 67 | 87 |
<h> | h | lower | 104 | 68 | 88 |
<i> | i | lower | 105 | 69 | 89 |
<j> | j | lower | 106 | 6A | 91 |
<k> | k | lower | 107 | 6B | 92 |
<l> | l | lower | 108 | 6C | 93 |
<m> | m | lower | 109 | 6D | 94 |
<n> | n | lower | 110 | 6E | 95 |
<o> | o | lower | 111 | 6F | 96 |
<p> | p | lower | 112 | 70 | 97 |
<q> | q | lower | 113 | 71 | 98 |
<r> | r | lower | 114 | 72 | 99 |
<s> | s | lower | 115 | 73 | A2 |
<t> | t | lower | 116 | 74 | A3 |
<u> | u | lower | 117 | 75 | A4 |
<v> | v | lower | 118 | 76 | A5 |
<w> | w | lower | 119 | 77 | A6 |
<x> | x | lower | 120 | 78 | A7 |
<y> | y | lower | 121 | 79 | A8 |
<z> | z | lower | 122 | 7A | A9 |
<left-curly-bracket> | { | punct | 123 | 7B | FB |
<vertical-line> | | | punct | 124 | 7C | 4F |
<right-curly-bracket> | } | punct | 125 | 7D | FD |
<tilde> | ~ | punct | 126 | 7E | FF |
<DEL> | DEL | control | 127 | 7F | 07 |
The EBCDIC character set is an 8-bit codeset and includes a total of 256 characters. The different variants of the EBCDIC character set can be found in the "XHCS" manual [8] .
The symbolic names of the portable character set are used for the assignment of the coded character set in a codeset table.
Wide character codes
All wide character codes in a process consist of characters with the same number of bits. Wide characters must not be confused with multi-byte characters, which may consist of a variable number of bytes.
Although the C runtime library supports functions that process multi-byte characters, the actual length of a multi-byte character in this version is only 1 byte (= 8 bits), since only EBCDIC is available for the wide character codeset.