Skip to content
Encoding
Base16
Boundary
Text or bytes
Runtime
Browser

Decode complete Base16 byte pairs without guessing

Validate hexadecimal byte pairs and inspect their exact bytes plus an optional valid UTF-8 view.

Local processingNo sign-upNo files or upload

Decode Base16

Limited to 512 KiB of bytes and 1 MiB of encoded text.

Tool Swim does not upload, fetch, save, log, convert files, or create presets from these values.

Decoded byte report

Decoder reports keep lowercase hexadecimal authoritative.

What this tool proves

Explicit byte-to-text semantics

The decoder accepts upper- or lowercase RFC 4648 hexadecimal, but rejects odd digits, prefixes, separators, and whitespace rather than cleaning the input silently.

Hex validity and UTF-8 validity are different questions

The decoder accepts upper- or lowercase RFC 4648 hexadecimal, but rejects odd digits, prefixes, separators, and whitespace rather than cleaning the input silently.

Lowercase hex remains the authoritative result. Invalid UTF-8 bytes still decode successfully and simply have no text preview.

Bytes stay explicit, private, and bounded

Encoder text is converted with UTF-8 only after malformed surrogate pairs are rejected. Hex mode accepts exact byte pairs without 0x, spaces, or separators. Decoder hex is authoritative; a text preview appears only when the bytes are valid UTF-8.

The work starts only when you submit the form. Source text, byte values, and results stay in the current browser tab; Tool Swim does not upload them, log their content, save presets, or call a developer API.

Base16, Base32, Base64, and Base85 allow at most 512 KiB of source or decoded bytes and 1 MiB of encoded text. Bitcoin Base58 is limited to 4,096 bytes or 5,600 characters because generic radix conversion is quadratic.

Primary references

Questions and answers

Related Base Encoding tools