Skip to content

ASCII Table

Interactive ASCII character reference table with search and filtering

Quick, how many characters does ASCII have?

  1. That’s it. The whole thing fits on a single screen, and yet it’s the foundation of basically every encoding system you’ll ever touch. ASCII maps those 128 characters to numeric values 0 through 127, control characters, letters, digits, punctuation, the works.

Here’s the thing about ASCII: you probably don’t think about it until something breaks. Then you’re staring at a hex dump wondering why your parser is choking on a carriage return, and suddenly knowing that CR is 0x0D (decimal 13) matters a lot. This reference table shows every character with its decimal, hex, octal, and binary values side by side.

What you can do with it

Browse the full table, search for specific characters by value or name, filter down to just printable or just control characters. Click any character to copy it. The caret notation for control characters (^A, ^M, etc.) is there too, handy when you’re reading terminal docs.

The ranges, briefly

0-31 and 127 are control characters. Most of them are relics from the teletype era, but a few still matter: Tab (9), Line Feed (10), Carriage Return (13), Escape (27). You’ll hit these constantly in protocol parsing and file handling.

32-126 are the printable characters, everything you can actually see on screen. Space is technically in here at position 32, which leads to a neat trick: lowercase a is 97, uppercase A is 65, and the difference is exactly 32. That’s not a coincidence. The ASCII designers were clever like that.

48-57 are the digits 0-9. 65-90 are uppercase A-Z. 97-122 are lowercase a-z. If you’ve ever written if (c >= 48 && c <= 57) to check for a digit, you’ve done character arithmetic with ASCII.

When you’ll actually need this

You’re debugging a webhook that sends garbled text, turns out there’s a BOM character at the start. You’re parsing HTTP headers and need to split on \r\n (that’s 13 followed by 10). You’re writing a binary file parser and need to check the magic bytes in hex. You’re building a terminal game and mapping keypresses to character codes.

One thing worth noting: the first 128 Unicode code points are identical to ASCII. So everything here applies to UTF-8 too, ASCII is basically a subset of Unicode. If you need HTML-specific character references, check out the HTML Entities Reference. For number base conversions, there’s the Number Base Converter.

FAQ

What are control characters, and do they still matter?

Yes, several still matter. Tab (9), Line Feed (10, your \n), Carriage Return (13, your \r), and Escape (27) show up everywhere in modern software. The rest are mostly historical curiosities from when computers talked to teletypes.

ASCII vs Unicode, what’s the actual difference?

ASCII covers 128 characters with 7 bits. Unicode covers over 149,000 characters across virtually every writing system. The clever part: Unicode’s first 128 code points are ASCII, so there’s perfect backward compatibility.

What’s caret notation?

It’s how terminals represent control characters. ^A means “hold Ctrl and press A,” which produces character code 1. The math: take the letter’s ASCII value (A = 65) and subtract 64. So ^M = 77 - 64 = 13, which is Carriage Return.

Can I search by hex value?

Yep. Type 41 in the search box and it’ll show you the letter A (hex 0x41, decimal 65).

Does it work offline?

It’s all client-side, once the page loads, you don’t need an internet connection.

ascii character reference table encoding

Related Tools

More in Developer Tools