Using the Hex encoder and decoder
Convert text to its hexadecimal byte values, or turn a string of hex back into text. Input is read and written as UTF-8, so every round trip is lossless. Everything runs in your browser – nothing you paste is uploaded or stored, so it is safe for tokens, keys and private data.
How does text become hex?
The text is first encoded to bytes using UTF-8, then each byte is written as two hexadecimal digits (00–ff). “A” is one byte, 41; “é” is two bytes, c3 a9.
What separators are supported when decoding?
The decoder is forgiving: it ignores spaces, colons, commas and newlines, and strips 0x and \x prefixes. Anything left has to be an even number of hex digits.
Why do I get an error about invalid UTF-8?
The hex decoded to bytes fine, but those bytes are not a valid UTF-8 string, so there is no text to show. That usually means the data is binary rather than text.
What else can this tool do?
The same converter also handles base64, url, html entities, jwt, binary, morse code and rot13 / caesar cipher. Pick a format from the menu without leaving the page.
Is any of this encryption?
No. Encoding changes how data is represented so it can travel safely through a channel; it does not protect it. Anyone can reverse Base64, percent-encoding, hex or ROT13. For a one-way fingerprint use the hash generator; to check JSON you have decoded, use the JSON formatter.