Decode Hex (Base16) to String
Decode Hex (Base16) into text or binary online with UTF-8, UTF-16, Base64, and other output encodings. Read more
Decode Hex to text or binary
Hexadecimal, or Base16, uses two hexadecimal digits to represent each byte. This tool converts Hex bytes into text or another binary encoding such as Base64. Base16 is standardized in RFC 4648.
For example, the Hex value:
48656C6C6F
decodes as UTF-8 text Hello.
How to decode Hex
Enter an even-length sequence of hexadecimal digits, choose the desired output encoding, and select Decode. Hex letters are case-insensitive, so FF and ff represent the same byte.
Enable Ignore Non-Hex Characters only when the input contains separators or formatting that should be discarded. Review the result carefully: silently removing unexpected characters can hide malformed or incomplete source data.
Choosing the output encoding
Decoding Hex first recovers bytes. UTF-8, UTF-16, Base64, and other output options then determine how those bytes are displayed. If the bytes are not valid text in the selected encoding, the output may contain replacement characters or appear unreadable.
The correct encoding must come from the source format or protocol. It cannot always be inferred from the Hex string alone.
Hex decoding FAQ
Why must Hex usually have an even number of digits?
Each byte requires two hexadecimal digits. An odd number of digits leaves an incomplete byte unless a specific format defines how it should be interpreted.
Can spaces and separators appear in Hex input?
Human-readable byte dumps often contain spaces, colons, or line breaks. The ignore option can remove non-Hex formatting, but should not be used when strict validation is required.
How do I create Hex from text?
Use the Hex Encode tool and select the input character encoding before converting the bytes.