Ttooleras
🔢

Hex to Text Converter

Encoding Tools

Convert hexadecimal byte sequences to readable ASCII or UTF-8 text with flexible input formatting.. Free, private — all processing in your browser.

Advertisement

The Hex to Text tool converts hexadecimal byte sequences into readable text. Hexadecimal represents each byte as two hex digits (00-FF), making it much more compact than binary while remaining human-readable. \"48 69\" in hex is the ASCII for \"Hi\". Decoding hex back to text is common when reverse engineering data formats, reading hexdump output, decoding URL-encoded bytes, or handling binary data that was transmitted as hex text.

The tool accepts hex in every common format: space-separated bytes (48 69), with 0x prefixes (0x48 0x69), continuous without separators (4869), and with any common delimiter (48-69, 48,69). ASCII mode decodes each byte as a character. UTF-8 mode handles multi-byte sequences correctly for Unicode characters, emoji, and non-Latin scripts. Reverse conversion (text to hex) is handled by the companion tool. All processing runs in your browser so confidential hex data (keys, tokens, scraped protocol data) never leaves your machine.

Hex to Text Converter — key features

Flexible input parsing

Accepts hex with spaces, dashes, commas, 0x prefixes, or continuous form.

ASCII and UTF-8 output

Decodes as plain ASCII or multi-byte UTF-8 for correct emoji and non-Latin character support.

Case insensitive

48 69, 48 69, and 48 69 all work — uppercase and lowercase hex treated identically.

Non-printable visualization

Control characters shown as escape sequences so you know what’s in the data.

Byte count

Shows the number of bytes decoded and character count for UTF-8.

Error highlighting

Odd digit counts, invalid hex characters, or incomplete UTF-8 sequences flagged precisely.

Copy output

One-click copy the decoded text to clipboard.

Client-side only

Hex data never leaves your browser; safe for confidential protocol or key data.

How to use the Hex to Text Converter

  1. 1

    Paste hex

    Drop your hex string into the input — any common separator and 0x prefix are handled.

  2. 2

    Choose output encoding

    ASCII (7-bit, English only) or UTF-8 (full Unicode, recommended default).

  3. 3

    See decoded text

    The converted text appears immediately below.

  4. 4

    Check warnings

    If hex has odd digit count or non-printable bytes, warnings appear with suggestions.

  5. 5

    Copy

    One-click copy to clipboard.

Common use cases for the Hex to Text Converter

Debugging

  • Hexdump reading: Decode the right-side text column of a hexdump when you need to read the actual content.
  • Protocol analysis: Decode text embedded in binary protocols during reverse engineering.
  • Log file investigation: Interpret hex-encoded payloads in logs where only printable characters were allowed.

Development

  • Token decoding: Decode hex-encoded tokens or signatures to understand their structure.
  • BLOB inspection: Database BLOB columns often display as hex; decode to see the embedded text.
  • Test data: Convert hex test fixtures to their text form for human review.

Education

  • Learning hex encoding: Verify manual hex-to-ASCII conversions when doing homework exercises.
  • Character encoding lessons: See how UTF-8 represents non-ASCII characters as multi-byte hex sequences.
  • Puzzle solving: CTF challenges often include hex-encoded text as an early decoding step.

Hex to Text Converter — examples

Simple ASCII

Hex bytes decoded to a short word.

Input
48 69
Output
Hi

With 0x prefix

Programming-style hex.

Input
0x48 0x65 0x6C 0x6C 0x6F
Output
Hello

Continuous

No separators.

Input
48656C6C6F
Output
Hello

UTF-8 accented

Multi-byte sequence.

Input
63 61 66 C3 A9
Output
café (C3 A9 is é in UTF-8)

Emoji

4-byte UTF-8 sequence.

Input
F0 9F 98 80
Output
😀 (grinning face)

Technical details

Hexadecimal is base-16 (0-9 and A-F). Each byte (8 bits) fits in exactly 2 hex digits: 00 (zero) through FF (255). This makes hex a compact, human-readable encoding for binary data — much easier than pure binary (8 bits per byte) and more compact (2 hex digits = 8 bits = 1 byte).

Hex-to-byte parsing:
1. Strip all whitespace and common separators (spaces, commas, dashes)
2. Strip 0x or \\x prefixes
3. Group remaining hex digits into pairs (each pair is one byte)
4. Convert each pair to its numeric byte value (0-255)

If the total number of hex digits is odd, the input is invalid — bytes must come in complete pairs.

Bytes to text:
- ASCII: each byte value 0-127 maps to an ASCII character. Values 128-255 are outside ASCII and either get shown as replacement characters or trigger a warning.
- UTF-8: the byte sequence is decoded as UTF-8, handling 1-4 byte sequences for Unicode codepoints.

Common hex encoding contexts:
- URL encoding: %48%69 (hex with % prefix) — use the URL Encoder tool for these
- HTTP hexdump: 48 69 across aligned columns with ASCII sidebar
- Database BLOB display: 0x48692148 — continuous with single prefix
- Programming language: 0x48, 0x69 — comma-separated with prefixes

The tool handles all these forms by stripping prefixes and normalizing before parsing.

UTF-8 multi-byte handling: starts with 110xxxxx (2-byte), 1110xxxx (3-byte), or 11110xxx (4-byte), followed by 10xxxxxx continuation bytes. The tool detects these patterns and decodes sequences correctly.

Non-printable characters: bytes 0x00-0x1F (except common whitespace) and 0x7F don\u2019t have visible glyphs. The tool shows them as escape sequences (\\x00, \\n, \\t) or Unicode replacement character.

Performance: hex decoding is O(n) and very fast. Multi-megabyte hex converts in milliseconds.

Common problems and solutions

Odd number of hex digits

Each byte requires 2 hex digits. "4869" is 2 bytes (Hi); "486" is invalid. Always even-length hex. The tool reports and highlights the problem.

Invalid hex characters

Hex uses only 0-9 and A-F. Characters outside this range (like G or !) are rejected. Double-check your input; a common mistake is confusing hex and base64.

ASCII mode fails on non-English

ASCII only covers 0-127. Bytes 128-255 in ASCII mode produce replacement characters or errors. Use UTF-8 mode for any content that might include non-English text.

Mixed separators confuse parser

Spaces and commas in the same string can cause parsing errors. Normalize to one separator (or strip all separators) before decoding.

Partial UTF-8 sequence

UTF-8 multi-byte characters span 2-4 bytes. If your hex ends mid-sequence, the last character is incomplete. The tool flags partial sequences.

Big-endian vs little-endian

For multi-byte hex data like integers, byte order (endianness) matters. For UTF-8 text, byte order is fixed (big-endian). Don’t reverse UTF-8 bytes thinking it’s a number.

URL-encoded hex

URLs encode bytes as %48%69 with % prefixes. The Hex to Text tool handles 0x prefixes but not %. Use the URL Decoder tool for URL-encoded bytes.

Hex to Text Converter — comparisons and alternatives

Compared to a Python one-liner (bytes.fromhex(hex_str).decode()), this tool is faster for one-off decoding and visualizes the byte-to-character mapping clearly.

Compared to command-line xxd -r -p, this tool has a browser UI and handles UTF-8 correctly. xxd is better for pipelines; this tool for interactive work.

Compared to other online hex decoders, this one handles UTF-8 multi-byte sequences reliably (many assume ASCII only) and supports multiple input formatting conventions.

Frequently asked questions about the Hex to Text Converter

How do I convert hex to text?

Paste the hex bytes (48 69, 0x48 0x69, or 4869 — all work) and the tool converts to text. Default output is UTF-8 which handles ASCII plus any Unicode characters correctly.

What hex formats does the tool accept?

Space-separated (48 69), with 0x prefixes (0x48 0x69), with \\x prefixes (\\x48\\x69), comma-separated (48,69), dash-separated (48-69), or continuous with no separators (4869). The parser handles all common variants.

Case sensitivity of hex?

Hex is case-insensitive. 48 69, 48 69, and 48 69 all decode identically. Most style guides prefer uppercase A-F for hex literals; others prefer lowercase. The tool accepts both.

How does UTF-8 hex decoding work?

UTF-8 encodes characters in 1-4 bytes. The tool detects multi-byte sequences by looking at the high bits of each byte: 0xxxxxxx is single byte (ASCII), 110xxxxx starts a 2-byte sequence, 1110xxxx starts a 3-byte sequence, 11110xxx starts a 4-byte sequence. Continuation bytes start with 10xxxxxx.

What if the hex has an odd number of digits?

Each byte needs exactly 2 hex digits. An odd number is invalid. Check for missing or extra digits. Also consider that some hex streams may have leading zero padding (08 rather than 8) — the tool expects explicit 2-digit bytes.

Can I convert long hex strings?

Yes. Tested with multi-megabyte hex input converting in under a second. No size limit beyond your browser’s memory for holding the input and output.

How do I convert text to hex?

Use the companion Text to Hex tool — paste text and get hex bytes in your chosen format. Round-tripping (text → hex → text) should return the original exactly.

Is my hex input private?

Yes. All decoding happens in your browser. Hex data (which may contain secrets, keys, or sensitive protocol content) stays local.

Additional resources

Advertisement

Related tools

All Encoding Tools

Learn more

Explore more tools

200+ free tools that run in your browser.

Browse all tools →