7-bit floor · 128 slots

ASCII is 128 codes. Treat the table as a floor.

People say ASCII when they mean plain English text. A log line. A JSON key. An HTTP header. A curly quote copied from Word. An emoji dropped into a .env file. Same label. Different bytes.

ASCII is a 1963 table with 128 slots. Seven bits. Code 65 is A. Code 10 is a line feed. Code 32 is space. Code 127 is DEL. A byte at 128 or above has left the table. The ASCII tools on Toolexe map those 128 slots. Nothing else.

The word people use when they mean text

ASCII survived because both ends of a wire needed a floor. Header names. Status lines. MAIL FROM. JSON's braces, brackets, quotes, and commas. C identifiers. A UART stream from a board with no Unicode stack.

User-facing copy is the wrong job.

Names, prices with £, German umlauts, a dash other than hyphen-minus. Those belong in UTF-8. Forcing them through an ASCII converter does not clean the string. The converter throws data away, or substitutes a question mark, depending on the control you left on.

UTF-8 kept the original 128 values on purpose. HTTP still speaks them. SMTP still speaks them. Serial consoles still print them. The converters on Toolexe exist for the hour you need the numbers, not a pep talk about old systems.

Reading a hex dump from a sensor? Start with Byte to ASCII. Typed a sentence and want codes? Use Text to ASCII. A partner mailed 72 101 108 108 111? Open ASCII to Text or Decimal to ASCII. Skip the twenty-line Python loop for a twenty-byte payload.

0-31, 32, 127. The unglamorous majority.

Most ASCII posters hang A-Z. The useful map is the boring middle. Controls, space, and DEL cause more production bugs than the Latin letters ever did.

NUL0 · 00
TAB9 · 09
LF10 · 0A
CR13 · 0D
ESC27 · 1B
SP32 · 20
DEL127 · 7F
ASCII ranges from 0 to 127
DecimalHexBlockWhat lives there
0-3100-1FC0 controlsNUL, TAB, LF, CR, ESC. Device actions, not glyphs.
3220SpaceA real character. Empty to the eye, present in the byte.
33-4721-2FEarly punctuation!"#$%&'()*+,-./
48-5730-39Digits0 through 9. Not the integer 48. The glyph "0".
65-9041-5AUppercaseA-Z. Code 65 is A. Always.
97-12261-7ALowercasea-z. A 32-offset from the matching capital.
1277FDELPunched-tape leftover. Still appears in terminal erase.
Printable sanity-check codes
DecCharHexBinary
32SP2000100000
4803000110000
65A4101000001
90Z5A01011010
97a6101100001
122z7A01111010

Space (32) is a character. Tab (9) is not a space. CR (13) plus LF (10) is a Windows line ending. A lone LF is Unix. Mix them in a "plain text" file and the diff looks haunted.

DEL (127) still shows up in tape-era files and in some terminal erase sequences. Seeing 0x7F in a dump is not binary corruption. 0x7F is a defined code.

Need one glyph confirmed during a lecture or a failing unit test? Character to ASCII prints decimal, hex, and binary together so you stop flipping between man pages.

If the paste looks like this

Pick the converter from the shape of the input. Not from a feature list. The ASCII tool index is the full set. The rows below are the usual tickets.

Dump sitting on the clipboard right now? Paste into ASCII to Text before you open an editor. Twenty bytes do not need a script.

Paste the dump

One line: Hello, three encodings

The five bytes behind Hello are 72 101 108 108 111 in decimal.

Text
Hello
Decimal
72 101 108 108 111
Hex
48 65 6C 6C 6F

Binary for H is 01001000. Same characters in Character to ASCII if you only need one glyph. Same payload in Byte to ASCII if the source was a hex dump.

A common miss: treating 0x48 and 48 as different alphabets. They are the same H. The prefix tells the parser which radix you used. Mixing decimal 72 with hex 72 in one field gives you H, then r.

Need the string to ride inside JSON or a mail part without high-bit surprises? ASCII to Base64 wraps the 7-bit text. The output runs about a third longer. Anyone who decodes the block reads the original. For the wider Base64 set, use the Base64 tools hub.

Keep the 7-bit floor, or leave

Stay on ASCII when the spec says US-ASCII, when you are staring at control bytes, when you are teaching the table, or when the other end is a 1980s UART. Leave for UTF-8 the moment a human will read the string, or the moment you need more than Latin letters.

Stay on the 128

  • HTTP header names and most header values
  • SMTP commands, DNS labels in the LDH subset
  • JSON structural characters, many config keys
  • Source identifiers, Makefile targets, serial consoles

Hand the string to UTF-8

  • People's names, city names, product copy
  • Currency signs, typographic quotes, dashes
  • Anything with a BOM or a multi-byte sequence
  • Logs you expect to search in a browser later

UTF-8 of Hello is identical to ASCII of Hello. UTF-8 of café is not. The é is C3 A9. An ASCII-only hop will reject those two bytes or smash them. When the dump is already multi-byte, leave this hub and open the UTF tools hub.

What these converters refuse

A tool page listing only wins is a brochure. The refusal list is short.

No 8-bit "extended" pages
CP437 line-drawing, ISO-8859-1 Latin-1, Windows-1252 smart quotes. Each is a different map above 127. This hub will not pretend they are ASCII.
No round-trip of invalid UTF-8
Broken multi-byte sequences stay broken. Do not use an ASCII converter to "repair" them. Repair means picking the real encoding first.
No server copy of your paste
Work runs in the browser. There is still no good reason to paste a production secret into a converter tab.
NUL is a nuisance
Code 0 is a defined ASCII control. Plenty of text fields drop NUL, hide NUL, or truncate at the first one. If the dump contains 00, read the bytes, not a paragraph.
ASCII art is not encoding
Image to ASCII Art paints a grid. Fun for a README. Useless as a wire format. Do not ship the banner through SMTP and call the result ASCII-safe.

Questions from the dump, not the glossary

  1. 01

    Why did 145 print as a curly quote on my PC?

    Windows-1252 maps 0x91 and 0x92 to smart quotes. ASCII stops at 127. A converter on this hub will not call 145 a quote. Fix the source encoding, or you ship mojibake into the next hop.

  2. 02

    Is UTF-8 the same as ASCII for English?

    For the 128 codes, yes. Hello is the same bytes in both. Add café, a euro sign, or an emoji, and UTF-8 spends extra bytes. An ASCII-only pipe rejects those bytes or smashes them into replacement glyphs.

  3. 03

    Do these converters upload my dump?

    No. Mapping runs in the browser. Still skip live tokens, private keys, and session cookies. A paste in a ticket screenshot outlives the incident.

  4. 04

    Why did the serial log print boxes or question marks?

    The device sent a byte above 127, or a control the terminal hid. Open Byte to ASCII, read the hex, then decide if the firmware used a vendor code page. Guessing "extended ASCII" is how those boxes get committed.

  5. 05

    Should I strip high bytes or reject the payload?

    Reject in protocols. Silent strip hides a charset bug until production. Teaching labs are the only honest place to strip-and-continue, because the lesson is the missing glyph, not a clean log.

If the dump is not 7-bit

Whitespace, line endings, and Latin letters still live next door in the text tools set. Encoding adjacent to ASCII sits in UTF and Base64. Open those when the byte is already above 127.

Bookmark the chart. Open the converter matching the paste. Stop calling every .txt file ASCII.