ASCII table — decimal, hex, octal and binary
The full ASCII and Latin-1 table with decimal, hexadecimal, octal and binary values, control-character names and the escapes that go with them.
- Runs in your browser
- Nothing you enter is sent
- Free, no account
Showing 256 entries.
| Dec | Hex | Oct | Binary | Char | Description |
|---|---|---|---|---|---|
| 0 | 0x00 | 000 | 00000000 | NUL | Null — terminates C strings\0 |
| 1 | 0x01 | 001 | 00000001 | SOH | Start of heading |
| 2 | 0x02 | 002 | 00000010 | STX | Start of text |
| 3 | 0x03 | 003 | 00000011 | ETX | End of text — what Ctrl+C sends |
| 4 | 0x04 | 004 | 00000100 | EOT | End of transmission — what Ctrl+D sends |
| 5 | 0x05 | 005 | 00000101 | ENQ | Enquiry |
| 6 | 0x06 | 006 | 00000110 | ACK | Acknowledge |
| 7 | 0x07 | 007 | 00000111 | BEL | Bell — makes the terminal beep\a |
| 8 | 0x08 | 010 | 00001000 | BS | Backspace\b |
| 9 | 0x09 | 011 | 00001001 | HT | Horizontal tab\t |
| 10 | 0x0A | 012 | 00001010 | LF | Line feed — the newline on Unix and in HTTP\n |
| 11 | 0x0B | 013 | 00001011 | VT | Vertical tab\v |
| 12 | 0x0C | 014 | 00001100 | FF | Form feed — page break\f |
| 13 | 0x0D | 015 | 00001101 | CR | Carriage return — paired with LF on Windows\r |
| 14 | 0x0E | 016 | 00001110 | SO | Shift out |
| 15 | 0x0F | 017 | 00001111 | SI | Shift in |
| 16 | 0x10 | 020 | 00010000 | DLE | Data link escape |
| 17 | 0x11 | 021 | 00010001 | DC1 | Device control 1 (XON) |
| 18 | 0x12 | 022 | 00010010 | DC2 | Device control 2 |
| 19 | 0x13 | 023 | 00010011 | DC3 | Device control 3 (XOFF) |
| 20 | 0x14 | 024 | 00010100 | DC4 | Device control 4 |
| 21 | 0x15 | 025 | 00010101 | NAK | Negative acknowledge |
| 22 | 0x16 | 026 | 00010110 | SYN | Synchronous idle |
| 23 | 0x17 | 027 | 00010111 | ETB | End of transmission block |
| 24 | 0x18 | 030 | 00011000 | CAN | Cancel |
| 25 | 0x19 | 031 | 00011001 | EM | End of medium |
| 26 | 0x1A | 032 | 00011010 | SUB | Substitute — end-of-file on Windows consoles |
| 27 | 0x1B | 033 | 00011011 | ESC | Escape — starts every ANSI terminal sequence\e |
| 28 | 0x1C | 034 | 00011100 | FS | File separator |
| 29 | 0x1D | 035 | 00011101 | GS | Group separator |
| 30 | 0x1E | 036 | 00011110 | RS | Record separator |
| 31 | 0x1F | 037 | 00011111 | US | Unit separator |
| 32 | 0x20 | 040 | 00100000 | ␠ | Space — percent-encodes to %20, or + in form data |
| 33 | 0x21 | 041 | 00100001 | ! | Exclamation mark |
| 34 | 0x22 | 042 | 00100010 | " | Double quote — " in HTML" |
| 35 | 0x23 | 043 | 00100011 | # | Number sign / hash — starts the fragment in a URL |
| 36 | 0x24 | 044 | 00100100 | $ | Dollar sign |
| 37 | 0x25 | 045 | 00100101 | % | Percent sign — starts a percent-encoded byte |
| 38 | 0x26 | 046 | 00100110 | & | Ampersand — & in HTML, separates query parameters& |
| 39 | 0x27 | 047 | 00100111 | ' | Apostrophe — ' in HTML' |
| 40 | 0x28 | 050 | 00101000 | ( | Left parenthesis |
| 41 | 0x29 | 051 | 00101001 | ) | Right parenthesis |
| 42 | 0x2A | 052 | 00101010 | * | Asterisk |
| 43 | 0x2B | 053 | 00101011 | + | Plus sign — means a space in form-encoded data |
| 44 | 0x2C | 054 | 00101100 | , | Comma |
| 45 | 0x2D | 055 | 00101101 | - | Hyphen-minus |
| 46 | 0x2E | 056 | 00101110 | . | Full stop |
| 47 | 0x2F | 057 | 00101111 | / | Solidus / slash |
| 48 | 0x30 | 060 | 00110000 | 0 | Digit 0 |
| 49 | 0x31 | 061 | 00110001 | 1 | Digit 1 |
| 50 | 0x32 | 062 | 00110010 | 2 | Digit 2 |
| 51 | 0x33 | 063 | 00110011 | 3 | Digit 3 |
| 52 | 0x34 | 064 | 00110100 | 4 | Digit 4 |
| 53 | 0x35 | 065 | 00110101 | 5 | Digit 5 |
| 54 | 0x36 | 066 | 00110110 | 6 | Digit 6 |
| 55 | 0x37 | 067 | 00110111 | 7 | Digit 7 |
| 56 | 0x38 | 070 | 00111000 | 8 | Digit 8 |
| 57 | 0x39 | 071 | 00111001 | 9 | Digit 9 |
| 58 | 0x3A | 072 | 00111010 | : | Colon |
| 59 | 0x3B | 073 | 00111011 | ; | Semicolon |
| 60 | 0x3C | 074 | 00111100 | < | Less-than — < in HTML< |
| 61 | 0x3D | 075 | 00111101 | = | Equals sign |
| 62 | 0x3E | 076 | 00111110 | > | Greater-than — > in HTML> |
| 63 | 0x3F | 077 | 00111111 | ? | Question mark — starts the query string |
| 64 | 0x40 | 100 | 01000000 | @ | Commercial at |
| 65 | 0x41 | 101 | 01000001 | A | Capital letter A |
| 66 | 0x42 | 102 | 01000010 | B | Capital letter B |
| 67 | 0x43 | 103 | 01000011 | C | Capital letter C |
| 68 | 0x44 | 104 | 01000100 | D | Capital letter D |
| 69 | 0x45 | 105 | 01000101 | E | Capital letter E |
| 70 | 0x46 | 106 | 01000110 | F | Capital letter F |
| 71 | 0x47 | 107 | 01000111 | G | Capital letter G |
| 72 | 0x48 | 110 | 01001000 | H | Capital letter H |
| 73 | 0x49 | 111 | 01001001 | I | Capital letter I |
| 74 | 0x4A | 112 | 01001010 | J | Capital letter J |
| 75 | 0x4B | 113 | 01001011 | K | Capital letter K |
| 76 | 0x4C | 114 | 01001100 | L | Capital letter L |
| 77 | 0x4D | 115 | 01001101 | M | Capital letter M |
| 78 | 0x4E | 116 | 01001110 | N | Capital letter N |
| 79 | 0x4F | 117 | 01001111 | O | Capital letter O |
| 80 | 0x50 | 120 | 01010000 | P | Capital letter P |
| 81 | 0x51 | 121 | 01010001 | Q | Capital letter Q |
| 82 | 0x52 | 122 | 01010010 | R | Capital letter R |
| 83 | 0x53 | 123 | 01010011 | S | Capital letter S |
| 84 | 0x54 | 124 | 01010100 | T | Capital letter T |
| 85 | 0x55 | 125 | 01010101 | U | Capital letter U |
| 86 | 0x56 | 126 | 01010110 | V | Capital letter V |
| 87 | 0x57 | 127 | 01010111 | W | Capital letter W |
| 88 | 0x58 | 130 | 01011000 | X | Capital letter X |
| 89 | 0x59 | 131 | 01011001 | Y | Capital letter Y |
| 90 | 0x5A | 132 | 01011010 | Z | Capital letter Z |
| 91 | 0x5B | 133 | 01011011 | [ | Left square bracket |
| 92 | 0x5C | 134 | 01011100 | \ | Reverse solidus / backslash — the escape character |
| 93 | 0x5D | 135 | 01011101 | ] | Right square bracket |
| 94 | 0x5E | 136 | 01011110 | ^ | Circumflex accent |
| 95 | 0x5F | 137 | 01011111 | _ | Low line / underscore |
| 96 | 0x60 | 140 | 01100000 | ` | Grave accent — the JavaScript template literal delimiter |
| 97 | 0x61 | 141 | 01100001 | a | Small letter a |
| 98 | 0x62 | 142 | 01100010 | b | Small letter b |
| 99 | 0x63 | 143 | 01100011 | c | Small letter c |
| 100 | 0x64 | 144 | 01100100 | d | Small letter d |
| 101 | 0x65 | 145 | 01100101 | e | Small letter e |
| 102 | 0x66 | 146 | 01100110 | f | Small letter f |
| 103 | 0x67 | 147 | 01100111 | g | Small letter g |
| 104 | 0x68 | 150 | 01101000 | h | Small letter h |
| 105 | 0x69 | 151 | 01101001 | i | Small letter i |
| 106 | 0x6A | 152 | 01101010 | j | Small letter j |
| 107 | 0x6B | 153 | 01101011 | k | Small letter k |
| 108 | 0x6C | 154 | 01101100 | l | Small letter l |
| 109 | 0x6D | 155 | 01101101 | m | Small letter m |
| 110 | 0x6E | 156 | 01101110 | n | Small letter n |
| 111 | 0x6F | 157 | 01101111 | o | Small letter o |
| 112 | 0x70 | 160 | 01110000 | p | Small letter p |
| 113 | 0x71 | 161 | 01110001 | q | Small letter q |
| 114 | 0x72 | 162 | 01110010 | r | Small letter r |
| 115 | 0x73 | 163 | 01110011 | s | Small letter s |
| 116 | 0x74 | 164 | 01110100 | t | Small letter t |
| 117 | 0x75 | 165 | 01110101 | u | Small letter u |
| 118 | 0x76 | 166 | 01110110 | v | Small letter v |
| 119 | 0x77 | 167 | 01110111 | w | Small letter w |
| 120 | 0x78 | 170 | 01111000 | x | Small letter x |
| 121 | 0x79 | 171 | 01111001 | y | Small letter y |
| 122 | 0x7A | 172 | 01111010 | z | Small letter z |
| 123 | 0x7B | 173 | 01111011 | { | Left curly bracket |
| 124 | 0x7C | 174 | 01111100 | | | Vertical line / pipe |
| 125 | 0x7D | 175 | 01111101 | } | Right curly bracket |
| 126 | 0x7E | 176 | 01111110 | ~ | Tilde |
| 127 | 0x7F | 177 | 01111111 | DEL | Delete |
| 128 | 0x80 | 200 | 10000000 | — | Unassigned in Latin-1 (C1 control range). Windows-1252 puts typographic characters here, which is where “smart quote” mojibake comes from. |
| 129 | 0x81 | 201 | 10000001 | — | Unassigned in Latin-1 (C1 control range). Windows-1252 puts typographic characters here, which is where “smart quote” mojibake comes from. |
| 130 | 0x82 | 202 | 10000010 | — | Unassigned in Latin-1 (C1 control range). Windows-1252 puts typographic characters here, which is where “smart quote” mojibake comes from. |
| 131 | 0x83 | 203 | 10000011 | — | Unassigned in Latin-1 (C1 control range). Windows-1252 puts typographic characters here, which is where “smart quote” mojibake comes from. |
| 132 | 0x84 | 204 | 10000100 | — | Unassigned in Latin-1 (C1 control range). Windows-1252 puts typographic characters here, which is where “smart quote” mojibake comes from. |
| 133 | 0x85 | 205 | 10000101 | — | Unassigned in Latin-1 (C1 control range). Windows-1252 puts typographic characters here, which is where “smart quote” mojibake comes from. |
| 134 | 0x86 | 206 | 10000110 | — | Unassigned in Latin-1 (C1 control range). Windows-1252 puts typographic characters here, which is where “smart quote” mojibake comes from. |
| 135 | 0x87 | 207 | 10000111 | — | Unassigned in Latin-1 (C1 control range). Windows-1252 puts typographic characters here, which is where “smart quote” mojibake comes from. |
| 136 | 0x88 | 210 | 10001000 | — | Unassigned in Latin-1 (C1 control range). Windows-1252 puts typographic characters here, which is where “smart quote” mojibake comes from. |
| 137 | 0x89 | 211 | 10001001 | — | Unassigned in Latin-1 (C1 control range). Windows-1252 puts typographic characters here, which is where “smart quote” mojibake comes from. |
| 138 | 0x8A | 212 | 10001010 | — | Unassigned in Latin-1 (C1 control range). Windows-1252 puts typographic characters here, which is where “smart quote” mojibake comes from. |
| 139 | 0x8B | 213 | 10001011 | — | Unassigned in Latin-1 (C1 control range). Windows-1252 puts typographic characters here, which is where “smart quote” mojibake comes from. |
| 140 | 0x8C | 214 | 10001100 | — | Unassigned in Latin-1 (C1 control range). Windows-1252 puts typographic characters here, which is where “smart quote” mojibake comes from. |
| 141 | 0x8D | 215 | 10001101 | — | Unassigned in Latin-1 (C1 control range). Windows-1252 puts typographic characters here, which is where “smart quote” mojibake comes from. |
| 142 | 0x8E | 216 | 10001110 | — | Unassigned in Latin-1 (C1 control range). Windows-1252 puts typographic characters here, which is where “smart quote” mojibake comes from. |
| 143 | 0x8F | 217 | 10001111 | — | Unassigned in Latin-1 (C1 control range). Windows-1252 puts typographic characters here, which is where “smart quote” mojibake comes from. |
| 144 | 0x90 | 220 | 10010000 | — | Unassigned in Latin-1 (C1 control range). Windows-1252 puts typographic characters here, which is where “smart quote” mojibake comes from. |
| 145 | 0x91 | 221 | 10010001 | — | Unassigned in Latin-1 (C1 control range). Windows-1252 puts typographic characters here, which is where “smart quote” mojibake comes from. |
| 146 | 0x92 | 222 | 10010010 | — | Unassigned in Latin-1 (C1 control range). Windows-1252 puts typographic characters here, which is where “smart quote” mojibake comes from. |
| 147 | 0x93 | 223 | 10010011 | — | Unassigned in Latin-1 (C1 control range). Windows-1252 puts typographic characters here, which is where “smart quote” mojibake comes from. |
| 148 | 0x94 | 224 | 10010100 | — | Unassigned in Latin-1 (C1 control range). Windows-1252 puts typographic characters here, which is where “smart quote” mojibake comes from. |
| 149 | 0x95 | 225 | 10010101 | — | Unassigned in Latin-1 (C1 control range). Windows-1252 puts typographic characters here, which is where “smart quote” mojibake comes from. |
| 150 | 0x96 | 226 | 10010110 | — | Unassigned in Latin-1 (C1 control range). Windows-1252 puts typographic characters here, which is where “smart quote” mojibake comes from. |
| 151 | 0x97 | 227 | 10010111 | — | Unassigned in Latin-1 (C1 control range). Windows-1252 puts typographic characters here, which is where “smart quote” mojibake comes from. |
| 152 | 0x98 | 230 | 10011000 | — | Unassigned in Latin-1 (C1 control range). Windows-1252 puts typographic characters here, which is where “smart quote” mojibake comes from. |
| 153 | 0x99 | 231 | 10011001 | — | Unassigned in Latin-1 (C1 control range). Windows-1252 puts typographic characters here, which is where “smart quote” mojibake comes from. |
| 154 | 0x9A | 232 | 10011010 | — | Unassigned in Latin-1 (C1 control range). Windows-1252 puts typographic characters here, which is where “smart quote” mojibake comes from. |
| 155 | 0x9B | 233 | 10011011 | — | Unassigned in Latin-1 (C1 control range). Windows-1252 puts typographic characters here, which is where “smart quote” mojibake comes from. |
| 156 | 0x9C | 234 | 10011100 | — | Unassigned in Latin-1 (C1 control range). Windows-1252 puts typographic characters here, which is where “smart quote” mojibake comes from. |
| 157 | 0x9D | 235 | 10011101 | — | Unassigned in Latin-1 (C1 control range). Windows-1252 puts typographic characters here, which is where “smart quote” mojibake comes from. |
| 158 | 0x9E | 236 | 10011110 | — | Unassigned in Latin-1 (C1 control range). Windows-1252 puts typographic characters here, which is where “smart quote” mojibake comes from. |
| 159 | 0x9F | 237 | 10011111 | — | Unassigned in Latin-1 (C1 control range). Windows-1252 puts typographic characters here, which is where “smart quote” mojibake comes from. |
| 160 | 0xA0 | 240 | 10100000 | Non-breaking space — | |
| 161 | 0xA1 | 241 | 10100001 | ¡ | Inverted exclamation mark |
| 162 | 0xA2 | 242 | 10100010 | ¢ | Cent sign |
| 163 | 0xA3 | 243 | 10100011 | £ | Pound sign |
| 164 | 0xA4 | 244 | 10100100 | ¤ | Currency sign |
| 165 | 0xA5 | 245 | 10100101 | ¥ | Yen sign |
| 166 | 0xA6 | 246 | 10100110 | ¦ | Latin-1 character ¦ |
| 167 | 0xA7 | 247 | 10100111 | § | Latin-1 character § |
| 168 | 0xA8 | 250 | 10101000 | ¨ | Latin-1 character ¨ |
| 169 | 0xA9 | 251 | 10101001 | © | Copyright sign |
| 170 | 0xAA | 252 | 10101010 | ª | Latin-1 character ª |
| 171 | 0xAB | 253 | 10101011 | « | Left double angle quote |
| 172 | 0xAC | 254 | 10101100 | ¬ | Latin-1 character ¬ |
| 173 | 0xAD | 255 | 10101101 | | Latin-1 character |
| 174 | 0xAE | 256 | 10101110 | ® | Registered sign |
| 175 | 0xAF | 257 | 10101111 | ¯ | Latin-1 character ¯ |
| 176 | 0xB0 | 260 | 10110000 | ° | Degree sign |
| 177 | 0xB1 | 261 | 10110001 | ± | Plus-minus sign |
| 178 | 0xB2 | 262 | 10110010 | ² | Latin-1 character ² |
| 179 | 0xB3 | 263 | 10110011 | ³ | Latin-1 character ³ |
| 180 | 0xB4 | 264 | 10110100 | ´ | Acute accent |
| 181 | 0xB5 | 265 | 10110101 | µ | Latin-1 character µ |
| 182 | 0xB6 | 266 | 10110110 | ¶ | Latin-1 character ¶ |
| 183 | 0xB7 | 267 | 10110111 | · | Middle dot |
| 184 | 0xB8 | 270 | 10111000 | ¸ | Latin-1 character ¸ |
| 185 | 0xB9 | 271 | 10111001 | ¹ | Latin-1 character ¹ |
| 186 | 0xBA | 272 | 10111010 | º | Latin-1 character º |
| 187 | 0xBB | 273 | 10111011 | » | Right double angle quote |
| 188 | 0xBC | 274 | 10111100 | ¼ | Latin-1 character ¼ |
| 189 | 0xBD | 275 | 10111101 | ½ | Latin-1 character ½ |
| 190 | 0xBE | 276 | 10111110 | ¾ | Latin-1 character ¾ |
| 191 | 0xBF | 277 | 10111111 | ¿ | Inverted question mark |
| 192 | 0xC0 | 300 | 11000000 | À | Latin-1 character À |
| 193 | 0xC1 | 301 | 11000001 | Á | Latin-1 character Á |
| 194 | 0xC2 | 302 | 11000010 |  | Latin-1 character  |
| 195 | 0xC3 | 303 | 11000011 | à | Latin-1 character à |
| 196 | 0xC4 | 304 | 11000100 | Ä | Latin-1 character Ä |
| 197 | 0xC5 | 305 | 11000101 | Å | Latin-1 character Å |
| 198 | 0xC6 | 306 | 11000110 | Æ | Latin-1 character Æ |
| 199 | 0xC7 | 307 | 11000111 | Ç | Latin-1 character Ç |
| 200 | 0xC8 | 310 | 11001000 | È | Latin-1 character È |
| 201 | 0xC9 | 311 | 11001001 | É | Latin-1 character É |
| 202 | 0xCA | 312 | 11001010 | Ê | Latin-1 character Ê |
| 203 | 0xCB | 313 | 11001011 | Ë | Latin-1 character Ë |
| 204 | 0xCC | 314 | 11001100 | Ì | Latin-1 character Ì |
| 205 | 0xCD | 315 | 11001101 | Í | Latin-1 character Í |
| 206 | 0xCE | 316 | 11001110 | Î | Latin-1 character Î |
| 207 | 0xCF | 317 | 11001111 | Ï | Latin-1 character Ï |
| 208 | 0xD0 | 320 | 11010000 | Ð | Latin-1 character Ð |
| 209 | 0xD1 | 321 | 11010001 | Ñ | Latin-1 character Ñ |
| 210 | 0xD2 | 322 | 11010010 | Ò | Latin-1 character Ò |
| 211 | 0xD3 | 323 | 11010011 | Ó | Latin-1 character Ó |
| 212 | 0xD4 | 324 | 11010100 | Ô | Latin-1 character Ô |
| 213 | 0xD5 | 325 | 11010101 | Õ | Latin-1 character Õ |
| 214 | 0xD6 | 326 | 11010110 | Ö | Latin-1 character Ö |
| 215 | 0xD7 | 327 | 11010111 | × | Multiplication sign |
| 216 | 0xD8 | 330 | 11011000 | Ø | Latin-1 character Ø |
| 217 | 0xD9 | 331 | 11011001 | Ù | Latin-1 character Ù |
| 218 | 0xDA | 332 | 11011010 | Ú | Latin-1 character Ú |
| 219 | 0xDB | 333 | 11011011 | Û | Latin-1 character Û |
| 220 | 0xDC | 334 | 11011100 | Ü | Latin-1 character Ü |
| 221 | 0xDD | 335 | 11011101 | Ý | Latin-1 character Ý |
| 222 | 0xDE | 336 | 11011110 | Þ | Latin-1 character Þ |
| 223 | 0xDF | 337 | 11011111 | ß | Latin-1 character ß |
| 224 | 0xE0 | 340 | 11100000 | à | Latin-1 character à |
| 225 | 0xE1 | 341 | 11100001 | á | Latin-1 character á |
| 226 | 0xE2 | 342 | 11100010 | â | Latin-1 character â |
| 227 | 0xE3 | 343 | 11100011 | ã | Latin-1 character ã |
| 228 | 0xE4 | 344 | 11100100 | ä | Latin-1 character ä |
| 229 | 0xE5 | 345 | 11100101 | å | Latin-1 character å |
| 230 | 0xE6 | 346 | 11100110 | æ | Latin-1 character æ |
| 231 | 0xE7 | 347 | 11100111 | ç | Latin-1 character ç |
| 232 | 0xE8 | 350 | 11101000 | è | Latin-1 character è |
| 233 | 0xE9 | 351 | 11101001 | é | Latin-1 character é |
| 234 | 0xEA | 352 | 11101010 | ê | Latin-1 character ê |
| 235 | 0xEB | 353 | 11101011 | ë | Latin-1 character ë |
| 236 | 0xEC | 354 | 11101100 | ì | Latin-1 character ì |
| 237 | 0xED | 355 | 11101101 | í | Latin-1 character í |
| 238 | 0xEE | 356 | 11101110 | î | Latin-1 character î |
| 239 | 0xEF | 357 | 11101111 | ï | Latin-1 character ï |
| 240 | 0xF0 | 360 | 11110000 | ð | Latin-1 character ð |
| 241 | 0xF1 | 361 | 11110001 | ñ | Latin-1 character ñ |
| 242 | 0xF2 | 362 | 11110010 | ò | Latin-1 character ò |
| 243 | 0xF3 | 363 | 11110011 | ó | Latin-1 character ó |
| 244 | 0xF4 | 364 | 11110100 | ô | Latin-1 character ô |
| 245 | 0xF5 | 365 | 11110101 | õ | Latin-1 character õ |
| 246 | 0xF6 | 366 | 11110110 | ö | Latin-1 character ö |
| 247 | 0xF7 | 367 | 11110111 | ÷ | Division sign |
| 248 | 0xF8 | 370 | 11111000 | ø | Latin-1 character ø |
| 249 | 0xF9 | 371 | 11111001 | ù | Latin-1 character ù |
| 250 | 0xFA | 372 | 11111010 | ú | Latin-1 character ú |
| 251 | 0xFB | 373 | 11111011 | û | Latin-1 character û |
| 252 | 0xFC | 374 | 11111100 | ü | Latin-1 character ü |
| 253 | 0xFD | 375 | 11111101 | ý | Latin-1 character ý |
| 254 | 0xFE | 376 | 11111110 | þ | Latin-1 character þ |
| 255 | 0xFF | 377 | 11111111 | ÿ | Latin-1 character ÿ |
Your lookup never leaves this tab — check it yourself—
Starting the network probe…
The counter above wraps fetch, XMLHttpRequest and navigator.sendBeacon in this tab and counts every call. It does not block anything — it just reports.
Two ways to verify independently
- Turn off Wi-Fi or enable airplane mode, then use the tool. It keeps working, because the page is already fully loaded.
- Open your browser devtools, switch to the Network tab, clear it, and run the tool. No new row appears.
Why this matters
In 2025 researchers found that popular online formatters had retained tens of thousands of user-submitted snippets — JSONFormatter.org and CodeBeautify together exposed roughly 80,000 saved documents, many containing live cloud credentials, private keys and internal database connection strings, because “format this” quietly meant “upload this”. A separate incident exposed roughly 3.5 million user PDFs on a document-conversion service. The only structural fix is not sending the data in the first place: this site is served under a Content-Security-Policy whose connect-src contains no third-party origin, so a request off this device cannot be made even by accident.
The structure of the table
ASCII is a 7-bit code with 128 positions, standardised in 1963 and essentially unchanged since. It divides cleanly into four blocks of 32, and the boundaries were chosen so that common operations became single bit flips.
- 0–31 plus 127 — control characters. Not printable; they instruct a device.
- 32–63 — space, punctuation and the digits.
- 64–95 —
@, the uppercase letters, and five brackets. - 96–126 — backtick, the lowercase letters, and the braces.
Two consequences of that layout are still used constantly. Uppercase and lowercase differ by
exactly one bit (0x20), so case conversion is c ^ 32. And a digit’s numeric value
is its code minus 48, which is why c - '0' parses a digit in C.
Control characters that still matter
| Dec | Name | Escape | Still used for |
|---|---|---|---|
| 0 | NUL | \0 | Terminating C strings; a null byte in input is a classic injection vector |
| 7 | BEL | \a | The terminal beep, and the terminator of some OSC escape sequences |
| 8 | BS | \b | Backspace |
| 9 | HT | \t | Tab — the delimiter in TSV, and in Makefiles |
| 10 | LF | \n | Newline on Unix and in every internet protocol |
| 12 | FF | \f | Page break in printed output and some source files |
| 13 | CR | \r | Paired with LF as CRLF on Windows and in HTTP headers |
| 27 | ESC | \e | Starts every ANSI terminal colour and cursor sequence |
| 4 | EOT | — | What Ctrl+D sends: end of input |
| 3 | ETX | — | What Ctrl+C sends: interrupt |
The Ctrl-key mapping is not a coincidence: holding Ctrl clears the top two bits, so Ctrl+A is 1, Ctrl+C is 3 and Ctrl+[ is 27, which is why Escape and Ctrl+[ are the same keystroke in vim.
CR, LF and the line-ending problem
Unix and macOS end a line with LF alone. Windows uses CRLF, inherited from teletypes where the carriage physically returned and then the paper advanced. HTTP headers, SMTP and most internet protocols specify CRLF.
The symptoms are recognisable: a stray ^M at the end of every line in a diff, a shell
script failing with “bad interpreter” because the shebang line ends in CR, and a
comparison that fails between two apparently identical strings. Configure git’s
core.autocrlf or add a .gitattributes and the problem stops recurring.
Above 127: where mojibake comes from
ASCII stops at 127. Everything above is a different standard, and the two that matter disagree in exactly the range people paste from.
ISO-8859-1 (Latin-1) leaves 128–159 as a second block of unused control codes. Windows-1252 fills
that block with typographic characters: curly quotes, the em dash, the ellipsis, the euro sign.
When a document containing those is declared as Latin-1 or UTF-8 and decoded as the other, you get
the familiar corruption — a curly quote becoming “, an em dash becoming
—. The 128–159 rows in the table above are marked so the source of that is visible.
ASCII and UTF-8
UTF-8 was designed so every ASCII byte encodes itself: any file containing only characters 0–127 is simultaneously valid ASCII and valid UTF-8. Characters above 127 use two to four bytes, each with the high bit set, so an ASCII parser reading UTF-8 never mistakes a continuation byte for a delimiter. That backwards compatibility is the single reason UTF-8 displaced every competing encoding.
Converting in code
JavaScript: "A".charCodeAt(0) // 65
String.fromCharCode(65) // "A"
"🎉".codePointAt(0) // 127881 — use this above U+FFFF
Python: ord("A") chr(65)
Go: rune('A') string(rune(65))
Shell: printf '%d' "'A" printf '\x41'
In JavaScript, prefer codePointAt and fromCodePoint over the
charCode pair: the older functions work on UTF-16 code units, so they return half of a
surrogate pair for emoji and other characters above U+FFFF.
Questions
What are the control characters for?
They date from teletypes and most are obsolete, but a handful run everything: 9 is tab, 10 is line feed (the newline on Unix and in every internet protocol), 13 is carriage return (paired with LF on Windows), 27 is escape, which begins every ANSI terminal colour sequence, and 0 terminates a C string.
Why do codes 128–159 show as unassigned?
Because in ISO-8859-1 they are a second block of control characters with no printable meaning. Windows-1252 puts curly quotes, the em dash and the euro sign there instead — which is precisely why a smart quote pasted from Word turns into “ when a page is mis-declared as Latin-1.
Is ASCII the same as UTF-8?
For the first 128 characters, yes: UTF-8 was designed so that every ASCII byte encodes itself. Above 127 they diverge completely — UTF-8 uses multi-byte sequences, Latin-1 uses single bytes. That compatibility is the reason UTF-8 won.
How do I convert a character to its code in code?
JavaScript: `"A".charCodeAt(0)` gives 65 and `String.fromCharCode(65)` reverses it. Python: `ord("A")` and `chr(65)`. For anything above U+FFFF use `codePointAt` and `fromCodePoint` in JavaScript — `charCodeAt` returns half a surrogate pair.