Skip to content
XUtilHub

Hex to String Converter – Hex to Text

Decode hexadecimal values to readable text (UTF-8). Accepts spaces, 0x prefixes and other separators.

  • Free, no sign-up
  • Runs in your browser, nothing uploaded
Input
Output

About the Hex to String

Decode hexadecimal bytes back into readable UTF-8 text. Spaces, commas and 0x prefixes are ignored automatically.

Key features

  • Decodes hexadecimal bytes into readable UTF-8 text
  • Ignores spaces, commas, line breaks and 0x prefixes
  • Upper- or lowercase hex accepted
  • Warns when a byte is incomplete (odd digit count)
  • Multi-byte characters and emoji decoded correctly
  • Runs in your browser

Turn hex back into text

Hexadecimal is how developers write raw bytes, and it shows up in log files, network captures, database exports, URL encodings and classroom exercises. Hex to String reads those bytes and shows the text they represent.

Example

48 65 6c 6c 6f 2c 20 57 6f 72 6c 64 21

becomes Hello, World!

Input styles it understands

StyleExample
Continuous48656c6c6f
Space-separated48 65 6c 6c 6f
With 0x prefixes0x48 0x65 0x6c
Comma-separated48,65,6C,6C,6F

Reading the result

  • Readable text: the bytes were UTF-8 (or plain ASCII).
  • Odd symbols like é: the text was encoded twice or with a different character set somewhere upstream.
  • Replacement characters (�): the bytes are not text at all.
  • An invisible first character: bytes ef bb bf are a UTF-8 byte order mark.

In code

const text = new TextDecoder().decode(Uint8Array.from(hex.match(/../g), (h) => parseInt(h, 16)));
text = bytes.fromhex("48656c6c6f").decode("utf-8")

Encode text with String to Hex, or work with bits using Binary to String.

How to use the Hex to String

  1. Type or paste your text into the input box.
  2. Choose the options you want.
  3. The result updates instantly as you type.
  4. Copy the output or download it as a .txt file.

Frequently asked questions

Which input formats work?

Continuous hex (48656c6c6f), space-separated bytes (48 65 6c), 0x-prefixed values (0x48,0x65) or one byte per line. Anything that isn't a hex digit is skipped.

What does 'odd number of digits' mean?

Every byte is two hex digits, so an odd total means one digit is missing, usually from an incomplete copy.

Why do I see � in the result?

Those bytes aren't valid UTF-8 text. They may use another encoding or be binary data such as an image.

How do I convert text to hex?

Use the String to Hex tool.

Is my text sent anywhere?

No. All text tools run locally in your browser.

Do these tools support Unicode?

Yes. They handle Unicode text, including emoji and accented characters.

Last updated:

Related Text tools