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.
| Decimal | Hex | Block | What lives there |
|---|---|---|---|
| 0-31 | 00-1F | C0 controls | NUL, TAB, LF, CR, ESC. Device actions, not glyphs. |
| 32 | 20 | Space | A real character. Empty to the eye, present in the byte. |
| 33-47 | 21-2F | Early punctuation | !"#$%&'()*+,-./ |
| 48-57 | 30-39 | Digits | 0 through 9. Not the integer 48. The glyph "0". |
| 65-90 | 41-5A | Uppercase | A-Z. Code 65 is A. Always. |
| 97-122 | 61-7A | Lowercase | a-z. A 32-offset from the matching capital. |
| 127 | 7F | DEL | Punched-tape leftover. Still appears in terminal erase. |
| Dec | Char | Hex | Binary |
|---|---|---|---|
| 32 | SP | 20 | 00100000 |
| 48 | 0 | 30 | 00110000 |
| 65 | A | 41 | 01000001 |
| 90 | Z | 5A | 01011010 |
| 97 | a | 61 | 01100001 |
| 122 | z | 7A | 01111010 |
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.
Text to ASCII
You typed letters. You want decimal, hex, or binary codes, with a separator you pick.
Decimal to ASCII
A partner mailed numbers. Map each value to a glyph. Mixed radix in one field is the usual miss.
Byte to ASCII
Firmware dump, UART capture, or a hex view from a debugger. Values above 127 sit outside this table.
Character to ASCII
Keyboard input, a unit test, or a lecture slide. Decimal, hex, and binary in one glance.
ASCII to Text
Paste decimal, hex, or binary. The converter tries the separators people use: space, comma, newline.
ASCII to Base64
JSON fields, mail parts, data URLs. Base64 is transport, not a lock. Anyone who decodes the block reads the original.
Image to ASCII Art
A grid of glyphs for a README banner. Not an encoding step. Do not feed the output into a protocol.
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 dumpOne line: Hello, three encodings
The five bytes behind Hello are 72 101 108 108 111 in decimal.
Hello72 101 108 108 11148 65 6C 6C 6FBinary 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
- 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.
- 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.
- 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.
- 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.
- 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.
