ParseJar › Encoding

Base64 Encoder / Decoder

Encode or decode Base64 and Base64URL with proper UTF-8 handling, so emoji and non-Latin text survive, or turn a file into a data URI.

File → data URI

Base64 vs Base64URL

Standard Base64 (RFC 4648 §4) uses + and / and pads with =. Base64URL (§5), used in JWTs and many web APIs, swaps those for - and _ and usually drops the padding. The decoder accepts either form, with or without padding.

Why btoa() fails on "é" and emoji

The browser's btoa only accepts Latin-1 characters. This tool first encodes text as UTF-8 bytes (TextEncoder) and then Base64-encodes the bytes, which is what servers in other languages expect. When decoding, if the bytes are not valid UTF-8 the result is shown as hex rather than garbled text.

Base64 is an encoding, not encryption. Anyone can decode it.

FAQ

How much bigger does Base64 make data?

About 33%: every 3 bytes become 4 characters, plus line breaks if you wrap.

Is the file uploaded?

No, it is read and encoded in your browser.

ParseJar is free. Its sister project ScrapeMole sells pay-per-call data APIs for AI agents.

Related tools