Home Tools Blog About

Convert Hex to ASCII

In short

Decode hexadecimal bytes to ASCII text. Auto-detect separators, handle non-printable bytes four ways, batch mode. Free, offline, 100% client-side.

  • Runs in your browser
  • Nothing uploaded
  • Free, no sign-up

Decode hexadecimal byte values into readable ASCII text. Accepts continuous digits, space/comma separators, and 0x prefixes. Four ways to handle non-printable bytes (escape, placeholder, strict, raw).

Enter hex to decode.
🛡
100% PrivateNo server uploads, ever
InstantRuns in your browser
💧
No WatermarksClean output, always
🆓
Free ForeverNo accounts, no limits

How to Use Convert Hex to ASCII

  1. Paste your hex input in any common format - continuous digits (48656C6C6F), space-separated (48 65 6C 6C 6F), comma-separated, or with 0x prefixes. Case doesn't matter.
  2. Pick a separator or leave it on Auto-detect - the tool inspects your input and strips commas, spaces, and 0x prefixes as it finds them.
  3. Choose how non-printable bytes are rendered: Escape (default, emits xNN), Placeholder (renders · for each), Strict (treats them as errors), or Raw (literal control characters - use carefully).
  4. Enable Batch mode if each line of input is a separate sequence. A bad line shows up in the error list below the output; the rest still decode.
  5. Press Convert (or Ctrl+Enter / Cmd+Enter). Auto-convert also runs 200 ms after each keystroke so you see the output as you type.
  6. Read the stats line: total bytes parsed, characters produced, and how many were non-printable. In batch mode it also counts successful vs failed lines.
  7. Copy or Download. Copy puts the decoded text on your clipboard (with an execCommand fallback for older browsers); Download saves a plain .txt file.

Frequently Asked Questions

What exactly does “hex to ASCII” mean?

Each pair of hex digits represents one byte (0-255), and each byte maps to one ASCII code point. 48 hex = 72 decimal = letter “H”. So 48656C6C6F decodes byte-by-byte to 72, 101, 108, 108, 111 → “Hello”. The tool repeats this for every pair in your input.

Which separators does Auto-detect handle?

Auto-detect strips the common four: 0x prefixes (0x48 0x65), commas (48,65), spaces and tabs (48 65), and plain continuous digits with no separators. Underscores as visual separators (48_65_6C) are also handled. Mix and match – 0x48, 0x65 0x6c works fine.

What counts as a “non-printable” byte?

Bytes outside the printable ASCII range 32 (space) through 126 (~). That includes control characters like x00 (null), x0A (newline), x1B (escape), and x7F (DEL), plus everything from x80 upward (which isn’t valid 7-bit ASCII at all – those are extended/high bytes used in code pages and UTF-8).

When should I use each non-printable mode?

Escape is safest for inspecting binary data – you see every byte clearly. Placeholder is cleanest for mostly-text data with occasional control bytes you want to ignore visually. Strict is for validation – if your hex is supposed to be pure printable ASCII, this flags anomalies as errors. Raw emits literal control characters – useful when piping into a shell that interprets them, dangerous in a browser text box.

What happens with odd-length hex?

You get an error: “Hex string must have an even number of digits.” Every byte needs 2 hex digits (one for each nibble), so A alone is ambiguous – is it 0A or A0? Rather than guessing, the tool refuses. Prepend or append a zero if you know which you meant.

What’s batch mode for?

When each line of your input is a separate hex sequence (maybe a column of database values, or multiple packets from a capture). Batch mode decodes each line independently and shows which ones failed in a red error list below the output. Without batch mode, all lines are concatenated into one big hex value.

How does this differ from a hex-to-UTF-8 decoder?

ASCII is strictly 7-bit (bytes 0-127). UTF-8 extends to multi-byte sequences for characters beyond ASCII – a byte like C3 A9 in UTF-8 is the single character “é”, but in pure ASCII it’s two non-printable bytes. If your hex represents UTF-8-encoded text, use the hex-to-UTF-8 tool instead; this one treats each byte as a standalone ASCII code.

Is my hex input sent anywhere?

No. Everything runs in your browser’s JavaScript engine – no network requests fire during conversion, and no server stores or logs your input. You can verify in the Network tab of DevTools. The tool keeps working even after you disconnect from the internet.

How big an input can I convert?

Practically unlimited. The algorithm is O(n) and processes roughly 1 MB of hex (100,000 bytes) in under 50 ms on a modern laptop. Very large pastes may take a moment to render in the output textarea, but the conversion itself stays fast.

Can I round-trip ASCII to hex and back?

Yes. Feed this tool’s output into a “text to hex” converter (or use our companion “convert ASCII to hex” tool), and you’ll recover the original hex exactly – assuming every byte was in the printable ASCII range. Non-printable bytes round-trip correctly in Raw and Strict modes; Escape mode adds explicit backslash sequences that the reverse tool would need to re-interpret.

Keep going

Related Tools

All Hex tools →
Share

Embed this tool

Add this free tool to your website. Copy and paste the code: