FormatterHQ

Base64 to ASCII

Decode Base64 into strict ASCII: printable characters, tabs and line breaks are shown as text, and every other byte becomes a visible \xHH escape.

Input TEXT
Output TEXT
Ready.

How to use the Base64 to ASCII

  1. Paste the Base64 string into the input editor, upload a file, or click Sample to load an example.
  2. Click Decode in the options panel. With Auto update ticked, the result refreshes as you type.
  3. Copy the result from the output panel or download it as a file.

Base64 to ASCII with visible bytes

The Base64 to ASCII decoder is for data that is mostly text but may contain bytes you need to see. Instead of guessing a character set or hiding problems behind replacement characters, it prints every byte either as a plain ASCII character or as a \xHH escape. No byte is hidden or swapped for a placeholder.

How bytes are shown

Byte rangeShown as
0x20–0x7E (printable ASCII)The character itself
0x09, 0x0A, 0x0D (tab, LF, CR)A real tab or line break
Everything else\xHH — for example \x00, \x1B, \xE9

Example

Base64 input:

QVNDSUkgb25seTogSGVsbG8hCVRhYmJlZAoAAen/

ASCII output:

ASCII only: Hello!	Tabbed
\x00\x01\xE9\xFF

The last four bytes are a NUL, a control character, a Latin-1 “é” (\xE9) and \xFF. A normal text decoder would hide or garble them; here each is visible.

When this view is useful

  • Protocol debugging. Many network and serial protocols mix ASCII commands with binary headers, lengths and checksums.
  • Finding hidden characters. NUL bytes, escape sequences or a stray byte order mark that break parsers are easy to spot.
  • Mixed or unknown encodings. Non-UTF-8 text shows which bytes are non-ASCII, so you can identify the encoding.
  • Security review. Inspecting an encoded payload without running or rendering it.

Because the output is plain ASCII, you can paste it into an email, a ticket or a chat message without any risk of the viewer altering invisible bytes — a useful property when you need to share exactly what a payload contained.

Patterns worth recognising

  • \xEF\xBB\xBF at the start — a UTF-8 byte order mark.
  • \xFF\xFE at the start, then letters alternating with \x00 — UTF-16LE text, as produced by Windows tools.
  • \x1B[ followed by digits — ANSI terminal colour codes captured in logs.
  • Pairs of \xC3 or \xC2 followed by another escape — UTF-8 encoded Latin letters.

Compared with other views

Choose Base64 to Text when you expect readable UTF-8, where “é” should appear as é. Choose Base64 to Hex when you want every byte as hex, including the ASCII ones. This ASCII view sits in between: readable where possible, precise everywhere else. The escape style matches Python’s bytes representation and C string escapes, so you can paste parts back into code.

Decoding runs entirely in your browser.

Reading the output correctly

  • Escapes are text, not bytes. \xE9 in the result is four characters that describe one byte. If you need the original binary data back, decode the Base64 itself, for example with base64 -d on the command line, instead of copying this view.
  • The result looks like Base64 again. If the output contains only letters, digits, +, / and =, the data was encoded twice. Decode the output one more time.
  • Line endings. Tabs and line breaks are shown as real whitespace, and the output editor stores every line break as a line feed, so a Windows CR LF pair looks the same as a single LF. Switch to Base64 to Hex when you need to see 0D 0A spelled out.
  • Nothing but escapes. A payload that is almost entirely \xHH is binary, such as an image, compressed data or ciphertext, not text in an unusual encoding.

Frequently asked questions

Why is é shown as \xC3\xA9?
In UTF-8, é is the two bytes C3 A9, which are outside ASCII. This tool shows each non-ASCII byte as an escape rather than interpreting the character set.
Which characters are shown as text?
Printable ASCII from space (0x20) to tilde (0x7E), plus tab, line feed and carriage return. All other bytes are escaped.
Is the output reversible?
Mostly: interpret \xHH escapes as bytes, for example in a Python bytes literal. A literal backslash in the data is not escaped and a CR LF pair is shown as one line break, so it can be ambiguous in rare cases.
When should I use Base64 to Text instead?
Use Base64 to Text when the data is proper UTF-8 text and you want to read it naturally, including non-English characters.

Last updated October 3, 2026

Related tools