Hex Decoder
Paste a hex string to decode it to readable text instantly. The hex digits are parsed into bytes and interpreted as UTF-8. Toggle to Encode to go the other way. Everything runs in your browser — nothing is uploaded.
How to decode hex to text
Paste your hex string above and the decoder converts it to readable text instantly. It parses the hex digits into raw bytes locally — two hex digits per byte — then interprets those bytes as UTF-8 text. Spaces, colons, and 0x prefixes are ignored, so 48 65 6c 6c 6f, 48:65:6c:6c:6f, and 48656c6c6f all decode to Hello. Click Copy to grab the result.
Hex vs Base64
Both are text representations of the same underlying bytes, but they make different tradeoffs. Hex uses 2 characters per byte — a 100% size overhead — and is trivially readable byte by byte, which makes it ideal for hashes, byte inspection, and debugging. Base64 uses about 1.33 characters per byte (~33% overhead) and is far more compact, which is why it's the go-to for transport and storage. If you have Base64 instead of hex, use Base64 to Hex. For a deeper comparison, see Base64 vs Hex.
Is this private?
Yes. The decoding runs fully in the browser with JavaScript — your hex is parsed and decoded locally and nothing is uploaded to any server. You can confirm in DevTools → Network: decoding fires no request.
Frequently asked questions
How do I decode a hex string to text?
Paste your hex into the input above. The tool parses the hex digits into raw bytes locally, then interprets those bytes as UTF-8 text — two hex digits per byte. The text appears instantly; click Copy to grab it.
Why do I get an 'invalid UTF-8' error?
The hex parsed fine into bytes, but those bytes aren't a valid UTF-8 sequence, so they don't represent text. That usually means the data is binary — an image, a hash, or an encrypted blob — rather than encoded text, or the hex has a typo. Binary data has no text form.
Can I encode text to hex here too?
Yes. Click the Decode button to switch it to Encode. Type or paste text and the tool shows its UTF-8 bytes as spaced lowercase hex, two digits per byte.
What's the difference between hex and Base64?
Both are text representations of the same bytes. Hex uses two characters per byte (100% overhead) and is easy to read byte by byte; Base64 uses about 1.33 characters per byte (~33% overhead) and is more compact, which is why it's preferred for transport. See Base64 vs Hex for the full comparison.
Need plain Base64 encode/decode?
The main base64.dev tool handles text, files, and URL-safe mode with auto-detect.
Open base64.dev →