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.