Skip to content

Hex Encoder & Decoder

Text ↔ hexadecimal with configurable separators — none, space, colon, dash, or 0x prefix.

Input

What this tool does

Convert text to hexadecimal and back, with a choice of separators that match downstream tools — plain, space, colon, dash, or 0x-prefixed (C-style array literals). UTF-8 in and out. Runs in your browser.

How to use it

Pick Encode or Decode, choose a separator for encode, and paste your input. Decode tolerates any common separator automatically.

Input:  hello
Output: 68 65 6c 6c 6f  (space separator)
Output: 0x68 0x65 0x6c 0x6c 0x6f  (0x prefix)

Limits and edge cases

  • Input is encoded as UTF-8 before hex conversion, so non-ASCII characters round-trip (e4 bd a0).
  • Decode rejects non-hex characters with a precise offset and rejects odd-length input (every byte needs two hex digits).
  • For binary blobs that aren’t UTF-8 text (PNG bytes, etc.), decode will surface a “not valid UTF-8” error rather than render replacement characters.

Frequently asked questions

Is anything sent to a server?
No. Hex encoding and decoding both happen entirely in your browser.
Why does decode work even when I mix separators?
Decode strips spaces, colons, dashes, and the 0x prefix before parsing. Paste in whatever format your other tool emits — it'll work.
Does it handle binary files?
Drop a file into the input pane to hex-encode its bytes. For decoding hex back to a binary file, the output is shown as text — if you need raw bytes, use the Download button.
Uppercase or lowercase output?
Lowercase by default (matches most CLI tools and Wireshark). Toggle the uppercase checkbox if your downstream tool expects A–F.