HEX to Text

Decode complete hexadecimal byte pairs into UTF-8 text. Accept whitespace and one leading 0x prefix, and diagnose incomplete pairs or invalid text bytes.

Read a hexadecimal representation of UTF-8 text. The decoder removes whitespace, accepts one optional leading 0x prefix and interprets complete byte pairs. It rejects malformed hex and byte sequences that cannot form valid UTF-8 instead of guessing a legacy character encoding.

  • 100% free
  • No registration
  • On your device
  • Modern browser
  1. 1Enter details
  2. 2Adjust options
  3. 3View result

Decode hexadecimal bytes into UTF-8 text. Your input stays on this device.

ResultIdle
Your result will appear here.

Your input stays on this device for this operation. We don’t upload or store it.

About HEX to Text

Read a hexadecimal representation of UTF-8 text. The decoder removes whitespace, accepts one optional leading 0x prefix and interprets complete byte pairs. It rejects malformed hex and byte sequences that cannot form valid UTF-8 instead of guessing a legacy character encoding.

Whitespace-tolerant input

Allows spaces and other whitespace between hex digits.

Optional whole-value prefix

Accepts one leading 0x prefix, with upper- or lowercase hex digits.

Strict text interpretation

Uses fatal UTF-8 decoding rather than silently substituting unreadable bytes.

How to use HEX to Text

  1. 1

    Paste complete byte pairs

    Enter a value such as 48 69 or 0x4869 in Source text. Colons, commas and repeated per-byte 0x prefixes are not supported.

  2. 2

    Press Process

    Check any error for incomplete pairs or bytes that do not form UTF-8 text.

  3. 3

    Copy readable text

    Use the copy control or save hex-to-text.txt. Preserve the original byte representation when investigating a data issue.

Formats and practical limits

Input: hex byte pairs, up to 100,000 JavaScript string units before whitespace removal. Output: UTF-8 text or a decoding error; TXT export.

  • No comma/colon-separated notation, per-byte 0x syntax or legacy-charset selector.
  • Decoding changes representation; it does not decrypt protected data or verify the source's authenticity.

Practical example

f0 9f 8c 8d decodes to 🌍. c3 a9 decodes to é, while e9 alone is rejected as invalid UTF-8.

Frequently Asked Questions

3 answers
Why is a single F rejected?

A byte needs two hex digits. Use complete pairs such as 0f; an odd number of digits does not form complete bytes.

Why does e9 not decode as é?

The single byte e9 is not a valid standalone UTF-8 encoding of é. The UTF-8 bytes are c3 a9. This tool does not guess Latin-1 or another legacy charset.

Can this recover text from any binary file?

No. Arbitrary binary bytes are not necessarily text. The workspace returns UTF-8 text and does not rebuild or download a decoded binary file.