Search tools

Find a tool by name or what it does.

Hex to Text

Turn hexadecimal back into readable text, with tolerant parsing for messy hex.

Byte encoding

Spaces, line breaks, commas, and 0x prefixes are all ignored automatically. Converted live, nothing leaves your browser.

How to convert hex to text online

  1. Paste the hex

    Drop in a hex string however it was copied: with spaces, commas, line breaks, or 0x prefixes in either case.

  2. Pick a byte encoding

    Leave UTF-8 selected for normal text, or switch to Latin-1 if the source data uses one byte per character.

  3. Read the result

    The decoded text appears the moment the hex is valid, along with a byte and character count.

Why use this tool

Tolerant of messy hex

Spaces, line breaks, commas, colons, dashes, and 0x prefixes are all stripped automatically before decoding, in either letter case.

Named error positions

An odd digit count or a character outside 0-9 and a-f is reported with the exact digit position, not a generic failure.

UTF-8 or Latin-1

Decode multi-byte UTF-8 text by default, or switch to Latin-1 when the source data stores one character per byte.

Honest byte and character counts

A quiet line under the result reports how many bytes were read and how many characters they produced.

Runs entirely in your browser

Decoding happens on your device as you type. Nothing is uploaded, stored, or logged.

About this tool

Text stored on a computer is really a sequence of byte values, and hexadecimal is the compact way people write those values down, two digits per byte. This tool reverses that step: paste a hex string and it decodes the underlying bytes back into the letters, numbers, and symbols they represent. The pair 48 69, for example, decodes to Hi.

Decoding is deliberately forgiving. Hex gets copied from all kinds of places, hex dumps, config files, color values, and puzzles, each with its own separator habits, so spaces, line breaks, commas, colons, dashes, and 0x prefixes are all stripped before the digits are read, and case does not matter. If a stray character sneaks in or the digit count comes out odd, the result area names exactly where the problem is instead of guessing at an answer.

Most text on the web is UTF-8, where a plain letter takes one byte and an accented letter or emoji takes several, so UTF-8 is the default decoding mode. Some older or single-byte data instead uses Latin-1, where every byte is exactly one character; switch to that mode when UTF-8 decoding fails or the source is known to be single-byte. To go the other direction, encode text into hex with text to hex, read the same bytes as a plain number with hex to decimal, or work across every base at once with the full number base converter.

Frequently asked questions

What hex formats can I paste in?
Almost any. Pairs can be separated by spaces, line breaks, commas, colons, dashes, or nothing at all, and 0x prefixes are removed automatically. Digits are not case sensitive, so 4a and 4A both work.
What does the byte encoding option change?
UTF-8 decodes multi-byte characters correctly, which covers almost all modern text. Latin-1 instead treats every single byte as its own character, which matters for older single-byte data that is not valid UTF-8.
What happens if my hex is invalid?
If the digit count is odd, or a character outside 0-9 and a-f appears, the result area names the exact digit position of the problem instead of returning wrong text.
Can it decode hex color codes or hex dumps?
Yes, as long as the value represents text bytes. A color code like ff8800 decodes to whatever characters those three bytes represent, which is usually not readable text, while hex copied from a text dump decodes cleanly.
Is my hex uploaded anywhere?
No. Everything runs in your browser, and nothing is sent to a server. Your hex is never uploaded, stored, or logged.

Related tools