#!/usr/bin/perl # #NAME # chrset - print out the annotated character set from 00 to FF. # # synopsis # chrset # #DESCRIPTION # This produces a listing of the character set from hex 00 to FF, # showing the octal, decimal and hexadecimal values for each character, # followed by the character itself, followed by a description of the # character. # # The control characters (before the space) are replaced by a space # in the output so as not to confuse assorted software. # # The descriptions are for OSI 8859-1, the Western European character # set. What the output actually looks like depends on what you use to # view it. # #BUGS # Some software still gets confused by some of the characters. # #AUTHOR # John Chambers $| = 1; %chrset = ( 0 => 'NUL "\\0"', 1 => 'SOH', 2 => 'STX', 3 => 'ETX', 4 => 'EOT', 5 => 'ENQ', 6 => 'ACK', 7 => 'BEL "\\a"', 8 => 'BS "\\b"', 9 => 'HT "\\t"', 10 => 'LF "\\n"', 11 => 'VT "\\v"', 12 => 'FF "\\f"', 13 => 'CR "\\r"', 14 => 'SO', 15 => 'SI', 16 => 'DLE', 17 => 'DC1', 18 => 'DC2', 19 => 'DC3', 20 => 'DC4', 21 => 'NAK', 22 => 'SYN', 23 => 'ETB', 24 => 'CAN', 25 => 'EM', 26 => 'SUB', 27 => 'ESC', 28 => 'FS', 29 => 'GS', 30 => 'RS', 31 => 'US', 32 => 'SPACE', 33 => '!', 34 => '"', 35 => '#', 36 => '$', 37 => '%', 38 => '&', 39 => '"', 40 => '(', 41 => ')', 42 => '*', 43 => '+', 44 => ',', 45 => '-', 46 => '.', 47 => '/', 48 => '0', 49 => '1', 50 => '2', 51 => '3', 52 => '4', 53 => '5', 54 => '6', 55 => '7', 56 => '8', 57 => '9', 58 => ':', 59 => ';', 60 => 'LESS THAN', 61 => 'EQUAL SIGN', 62 => 'GREATER THAN', 63 => 'QUESTION MARK', 64 => 'AT SIGN', 65 => 'A', 66 => 'B', 67 => 'C', 68 => 'D', 69 => 'E', 70 => 'F', 71 => 'G', 72 => 'H', 73 => 'I', 74 => 'J', 75 => 'K', 76 => 'L', 77 => 'M', 78 => 'N', 79 => 'O', 80 => 'P', 81 => 'Q', 82 => 'R', 83 => 'S', 84 => 'T', 85 => 'U', 86 => 'V', 87 => 'W', 88 => 'X', 89 => 'Y', 90 => 'Z', 91 => '[', 92 => '\ "\\"', 93 => ']', 94 => '^', 95 => '_', 96 => '`', 97 => 'a', 98 => 'b', 99 => 'c', 100 => 'd', 101 => 'e', 102 => 'f', 103 => 'g', 104 => 'h', 105 => 'i', 106 => 'j', 107 => 'k', 108 => 'l', 109 => 'm', 110 => 'n', 111 => 'o', 112 => 'p', 113 => 'q', 114 => 'r', 115 => 's', 116 => 't', 117 => 'u', 118 => 'v', 119 => 'w', 120 => 'x', 121 => 'y', 122 => 'z', 123 => '{', 124 => '|', 125 => '}', 126 => '~', 127 => 'DEL', 160 => 'NO-BREAK SPACE', 161 => 'INVERTED EXCLAMATION MARK', 162 => 'CENT SIGN', 163 => 'POUND SIGN', 164 => 'CURRENCY SIGN', 165 => 'YEN SIGN', 166 => 'BROKEN BAR', 167 => 'SECTION SIGN', 168 => 'DIAERESIS', 169 => 'COPYRIGHT SIGN', 170 => 'FEMININE ORDINAL INDICATOR', 171 => 'LEFT-POINTING DOUBLE ANGLE QUOTATION MARK', 172 => 'NOT SIGN', 173 => 'SOFT HYPHEN', 174 => 'REGISTERED SIGN', 175 => 'MACRON', 176 => 'DEGREE SIGN', 177 => 'PLUS-MINUS SIGN', 178 => 'SUPERSCRIPT TWO', 179 => 'SUPERSCRIPT THREE', 180 => 'ACUTE ACCENT', 181 => 'MICRO SIGN', 182 => 'PILCROW SIGN', 183 => 'MIDDLE DOT', 184 => 'CEDILLA', 185 => 'SUPERSCRIPT ONE', 186 => 'MASCULINE ORDINAL INDICATOR', 187 => 'RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK', 188 => 'VULGAR FRACTION ONE QUARTER', 189 => 'VULGAR FRACTION ONE HALF', 190 => 'VULGAR FRACTION THREE QUARTERS', 191 => 'INVERTED QUESTION MARK', 192 => 'LATIN CAPITAL LETTER A WITH GRAVE', 193 => 'LATIN CAPITAL LETTER A WITH ACUTE', 194 => 'LATIN CAPITAL LETTER A WITH CIRCUMFLEX', 195 => 'LATIN CAPITAL LETTER A WITH TILDE', 196 => 'LATIN CAPITAL LETTER A WITH DIAERESIS', 197 => 'LATIN CAPITAL LETTER A WITH RING ABOVE', 198 => 'LATIN CAPITAL LIGATURE AE', 199 => 'LATIN CAPITAL LETTER C WITH CEDILLA', 200 => 'LATIN CAPITAL LETTER E WITH GRAVE', 201 => 'LATIN CAPITAL LETTER E WITH ACUTE', 202 => 'LATIN CAPITAL LETTER E WITH CIRCUMFLEX', 203 => 'LATIN CAPITAL LETTER E WITH DIAERESIS', 204 => 'LATIN CAPITAL LETTER I WITH GRAVE', 205 => 'LATIN CAPITAL LETTER I WITH ACUTE', 206 => 'LATIN CAPITAL LETTER I WITH CIRCUMFLEX', 207 => 'LATIN CAPITAL LETTER I WITH DIAERESIS', 208 => 'LATIN CAPITAL LETTER ETH', 209 => 'LATIN CAPITAL LETTER N WITH TILDE', 210 => 'LATIN CAPITAL LETTER O WITH GRAVE', 211 => 'LATIN CAPITAL LETTER O WITH ACUTE', 212 => 'LATIN CAPITAL LETTER O WITH CIRCUMFLEX', 213 => 'LATIN CAPITAL LETTER O WITH TILDE', 214 => 'LATIN CAPITAL LETTER O WITH DIAERESIS', 215 => 'MULTIPLICATION SIGN', 216 => 'LATIN CAPITAL LETTER O WITH STROKE', 217 => 'LATIN CAPITAL LETTER U WITH GRAVE', 218 => 'LATIN CAPITAL LETTER U WITH ACUTE', 219 => 'LATIN CAPITAL LETTER U WITH CIRCUMFLEX', 220 => 'LATIN CAPITAL LETTER U WITH DIAERESIS', 221 => 'LATIN CAPITAL LETTER Y WITH ACUTE', 222 => 'LATIN CAPITAL LETTER THORN', 223 => 'LATIN SMALL LETTER SHARP S', 224 => 'LATIN SMALL LETTER A WITH GRAVE', 225 => 'LATIN SMALL LETTER A WITH ACUTE', 226 => 'LATIN SMALL LETTER A WITH CIRCUMFLEX', 227 => 'LATIN SMALL LETTER A WITH TILDE', 228 => 'LATIN SMALL LETTER A WITH DIAERESIS', 229 => 'LATIN SMALL LETTER A WITH RING ABOVE', 230 => 'LATIN SMALL LIGATURE AE', 231 => 'LATIN SMALL LETTER C WITH CEDILLA', 232 => 'LATIN SMALL LETTER E WITH GRAVE', 233 => 'LATIN SMALL LETTER E WITH ACUTE', 234 => 'LATIN SMALL LETTER E WITH CIRCUMFLEX', 235 => 'LATIN SMALL LETTER E WITH DIAERESIS', 236 => 'LATIN SMALL LETTER I WITH GRAVE', 237 => 'LATIN SMALL LETTER I WITH ACUTE', 238 => 'LATIN SMALL LETTER I WITH CIRCUMFLEX', 239 => 'LATIN SMALL LETTER I WITH DIAERESIS', 240 => 'LATIN SMALL LETTER ETH', 241 => 'LATIN SMALL LETTER N WITH TILDE', 242 => 'LATIN SMALL LETTER O WITH GRAVE', 243 => 'LATIN SMALL LETTER O WITH ACUTE', 244 => 'LATIN SMALL LETTER O WITH CIRCUMFLEX', 245 => 'LATIN SMALL LETTER O WITH TILDE', 246 => 'LATIN SMALL LETTER O WITH DIAERESIS', 247 => 'DIVISION SIGN', 248 => 'LATIN SMALL LETTER O WITH STROKE', 249 => 'LATIN SMALL LETTER U WITH GRAVE', 250 => 'LATIN SMALL LETTER U WITH ACUTE', 251 => 'LATIN SMALL LETTER U WITH CIRCUMFLEX', 252 => 'LATIN SMALL LETTER U WITH DIAERESIS', 253 => 'LATIN SMALL LETTER Y WITH ACUTE', 254 => 'LATIN SMALL LETTER THORN', 255 => 'LATIN SMALL LETTER Y WITH DIAERESIS', ); $l = '------------------------------------------'; for ($i = 0; $i < 256; $i ++) { print "OCT DEC HX C $l\n" unless $i % 16; $c = uc(sprintf("%c",$i)); if ($i < 32) {$c = ' '} $x = uc(sprintf("%x",$i)); while (length($x) < 2) {$x = '0' . $x} $d = uc(sprintf("%d",$i)); while (length($d) < 3) {$d = ' ' . $d} $o = uc(sprintf("%o",$i)); while (length($o) < 3) {$o = '0' . $o} print "$o $d $x $c $chrset{$i}\n"; } print "OCT DEC HX C $l\n";