Hex to ASCII Converter

Decodes hex byte pairs (space-separated or contiguous) back into plain text, strictly validating that every byte value falls within the 0-127 ASCII range, the direct inverse of the ASCII to Hex Converter. A free online tool from Staaarter, right in your browser.

Runs locallyUpdated 2026-07-26

Overview

Introduction

Hex-encoded ASCII text shows up constantly in packet captures, memory dumps, and low-level debugging output, and decoding it by hand one byte at a time is tedious and error-prone.

This tool decodes hex bytes back into plain text instantly, while strictly validating that every byte is genuinely within the 7-bit ASCII range rather than guessing at higher byte values.

What Is Hex to ASCII Converter?

A hex-to-text decoder that parses 2-digit hex byte pairs, checks each one against the 0-127 ASCII range, and converts valid bytes back into their original characters.

It's the direct inverse of ASCII to Hex Converter, and rejects out-of-range bytes rather than attempting to decode them as if they were plain ASCII.

How Hex to ASCII Converter Works

All whitespace is stripped from the input, then the remaining string is validated as pure hex digits and checked to have an even digit count before being split into 2-digit byte pairs.

Each byte pair is parsed as a decimal value and checked against the 0-127 range; a byte within range is converted back to its character with `String.fromCharCode`, while an out-of-range byte immediately stops conversion with a descriptive error.

When To Use Hex to ASCII Converter

Use it to quickly read hex-dumped ASCII text from logs, packet captures, or serial communication traces without decoding byte pairs by hand.

If the hex bytes might represent multi-byte UTF-8 characters (accented letters, emoji, non-Latin scripts), use Hex to UTF-8 Converter instead so those sequences decode correctly.

Features

Advantages

  • Accepts both space-separated and contiguous hex input, so you don't need to reformat pasted hex dumps first.
  • Flags out-of-range bytes explicitly instead of silently producing garbled or incorrect characters.
  • Reports the exact byte value and position of any validation failure for fast debugging.

Limitations

  • Cannot decode byte sequences representing multi-byte UTF-8 characters; any byte at or above 0x80 is rejected rather than interpreted.
  • Requires an even number of hex digits; a dangling half-byte at the end of the input is treated as an error rather than silently dropped.

Examples

Decoding space-separated hex bytes

Input

48 65 6C 6C 6F

Output

Hello

Each 2-digit hex pair is parsed as a decimal byte value and converted back to its ASCII character.

Decoding contiguous hex with no separators

Input

48656C6C6F

Output

Hello

Whitespace is optional; the string is split into 2-digit pairs regardless of spacing.

Rejecting an out-of-range byte

Input

48 FF 65

Output

Error: byte "FF" at position 2 is 255 decimal, which is outside the 7-bit ASCII range (0x00-0x7F)

0xFF (255) has no meaning in 7-bit ASCII, so decoding stops there instead of producing an incorrect character.

Best Practices & Notes

Best Practices

  • If you're unsure whether hex-dumped data is pure ASCII, try this tool first; a rejection quickly confirms the presence and location of an out-of-range byte.
  • For hex data you know or suspect encodes international text, use Hex to UTF-8 Converter directly to avoid the extra round trip.

Developer Notes

Implemented by stripping whitespace with `input.replace(/\s+/g, "")`, validating with a hex-digit regex and even-length check, splitting with `stripped.match(/.{2}/g)`, then calling `parseInt(pair, 16)` per byte and rejecting any value greater than 127 before `String.fromCharCode`.

Hex to ASCII Converter Use Cases

  • Decoding ASCII text from a hex-dumped network packet or memory region
  • Reading serial or embedded device debug output that's logged as raw hex bytes
  • Verifying an ASCII to Hex Converter round trip during testing

Common Mistakes

  • Pasting hex that includes non-ASCII byte values and expecting them to decode as text; the tool intentionally rejects those rather than guessing.
  • Forgetting a trailing digit when manually transcribing hex bytes, producing an odd-length string that fails validation.

Tips

  • The error message states the exact offending byte and its position, so you can jump straight to fixing or removing it.
  • Round-trip through ASCII to Hex Converter to confirm you get your original text back exactly.

References

Frequently Asked Questions