Base64 Encode / Decode
Full Unicode support, including URL-safe Base64
Everything runs in your browser. Your data never leaves your device.
Related tools
How to use
Base64 represents binary data using 64 printable characters. It is an encoding, not encryption — anyone can decode it — and it exists to move data safely through channels that only handle text.
Choose encode or decode
The pane labels update to match, so it is always clear which side holds plain text and which holds Base64.
Paste your input
Encoding accepts any Unicode text. Decoding accepts both standard and URL-safe Base64, and tolerates missing padding, which many APIs omit.
Enable URL-safe when needed
URL-safe output replaces + with - and / with _ and drops the trailing = padding, making the result usable in a URL path or query string without further escaping.
Examples
Encoding non-Latin text
The string "Hello, 세계! こんにちは 🌍" encodes to SGVsbG8sIOyEuOqzhCEg44GT44KT44Gr44Gh44GvIPCfjI0=. A btoa-only implementation would throw a character range error on the very first Korean character.
URL-safe for a JWT segment
Standard Base64 can contain + and /, both of which have meaning in a URL. URL-safe encoding produces a value you can place in a path or query parameter directly, which is why JWTs use it.
About this tool
Encode text to Base64 or decode it back. Unicode is handled correctly through UTF-8, so Korean, Japanese, Arabic and emoji all round-trip intact — unlike naive implementations built directly on btoa, which throw on any character outside Latin-1. URL-safe output is available for use in query strings and JWTs.