TOP

Free exact browser converter

Base32 Decoder

Decode RFC 4648 Base32 into strict UTF-8 text or hexadecimal bytes. Check padding, trailing bits and alphabet without losing zero bytes.

No signupRuns locally in your browser

Interactive tool

Base32 Decoder

Ready

Processing mode

Choose a clear output representation.

Detailed conversion guide

How Base32 Decoder Works

Each Base32 character supplies five bits. The decoder restores complete bytes and checks unused trailing bits are zero. It accepts a valid padded value or its unpadded form.

Choose text for actual UTF-8 payloads. Choose hex for arbitrary bytes or a value such as 74======, whose FF byte cannot be read as UTF-8.

InputOutputMeaning
JBSWY3DPHelloDefault example
MY======fBoundary example

JavaScript Example

Runnable example for the default sample. The tool also validates its full input contract.

const value = input.replace(/=+$/,"").toUpperCase();
const alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ234567";
const bits = Array.from(value,c => alphabet.indexOf(c).toString(2).padStart(5,"0")).join("");
const bytes = Uint8Array.from(bits.match(/.{8}/g)||[], b => parseInt(b,2));
const decoded = new TextDecoder("utf-8",{fatal:true,ignoreBOM:true}).decode(bytes);

Formats, Boundaries and Limitations

The tool rejects invalid padding counts and impossible lengths. MZ====== is rejected because it has nonzero trailing bits, even though a permissive decoder might recover the same byte as MY======.

This decoder uses the RFC 4648 alphabet, not Crockford Base32 or Base32hex. It does not guess omitted or confused characters.

Related converters

Choose the tool that matches your text or byte workflow.

Advertisement

Sponsored link