Base Encoder — Base64, Base32, Base58, Ascii85 & Z85
Encode and decode text or any file with Base64, Base32, Base58, Base64URL, Ascii85 or Z85 — five character sets, 76-char MIME lines, per-line mode.
🔒 Encoding and decoding run in your browser — nothing is uploaded.
Encode and decode across six alphabets
Type or paste text, choose the encoding — Base64, Base32, Base58, Base64URL, Ascii85 or Z85 — and switch between encode and decode. Base64URL is the URL/JWT-friendly variant, Base58 is the alphabet used by Bitcoin and IPFS, Ascii85 is what PostScript and PDF carry binary in, and Z85 is ZeroMQ's quote-safe version of it. Everything runs locally in your browser, so nothing is uploaded.
Which bytes go in
These alphabets encode bytes, not letters, so the tool lets you say how the box is read: UTF-8, UTF-16LE, UTF-16BE, Latin-1 (ISO-8859-1) or ASCII. The same two letters are two bytes in UTF-8 and four in UTF-16, and the two results share nothing — which is why a UTF-8-only tool can never reproduce a payload somebody else made from UTF-16 or Latin-1. A character the chosen set has no byte for is refused by name instead of being quietly replaced with a question mark. Line breaks raise the same question, so LF (Unix) and CRLF (Windows) are a choice too: the two give different Base64 for text that looks identical on screen.
Lines, and files that are not text
Each line separately treats every line as its own independent entry, so a list of a hundred values comes back as a hundred encoded lines instead of one blob — and decoding reverses it the same way. Split into 76-character lines folds the result the way MIME (RFC 2045) and PEM do; a folded blob pasted back in still decodes as one piece, because whitespace belongs to none of these alphabets.
Open a file and it is encoded byte for byte — a PNG, a key, a zip, not only text. Going the other way, Save decoded file hands over the exact bytes a payload stands for, so a Base64 string that is not text at all still comes back as the file it was.
Frequently asked questions
Which encodings are supported?
Six: Base64, Base32, Base58, Base64URL, Ascii85 (Adobe) and Z85, each with encode and decode — pick one from the dropdown; the same input box works for all of them.
What is the difference between Base64 and Base64URL?
Base64URL replaces + and / with - and _ and drops padding, so the result is safe to place in URLs and JWTs.
Is my text uploaded?
No. All encoding and decoding happen locally in your browser, including any file you open.
Can I encode a file rather than typed text?
Yes. Open file takes anything up to 5 MB. A text file lands in the box so you can still edit it, and until you edit it or change Read text as, Line breaks or Each line separately it is encoded byte for byte too, line endings and byte-order mark included; a file that is not text — a picture, a key, an archive — is encoded byte for byte, with its name and size shown so you can see what is being encoded. In decode mode, "Save decoded file" gives the exact bytes back as a file, which is how you turn a Base64 blob into the picture it was.
Why does my Base64 not match the one I was given?
Usually the two sides are encoding different bytes. Set "Read text as" to match the other side — UTF-8, UTF-16LE, UTF-16BE, Latin-1 or ASCII — because the same sentence is a different run of bytes in each. If the text has more than one line, check the line-break setting too: LF and CRLF differ by one byte per line, and that changes every character of the result from that line on.
Can it encode each line on its own, or wrap the output at 76 characters?
Both. "Each line separately" encodes (or decodes) every line as an independent entry, which is what you want for a list of values rather than one document. "Split into 76-character lines" folds the result to MIME width, as email and PEM files do. Folded input decodes either way, since whitespace is not part of any of these alphabets.