Base64
UTF-8-safe encode/decode plus URL-safe. Unicode never breaks.
Blog

Base64, Unicode-safe.

UTF-8 based, so Korean, Japanese, and emoji never break. URL-safe (-_, no padding) variant included.

Input
Output
Output appears here.

Base64 that doesn’t break on Unicode

The browser’s built-in btoa only understands Latin-1, so Korean, Japanese, and emoji throw errors or corrupt. This tool encodes through UTF-8 first, so any text round-trips perfectly. Decoding accepts both standard and URL-safe input automatically.

Standard vs URL-safe

Standard Base64 uses +, /, and = padding. The URL-safe variant swaps them for - and _ and drops padding, so the result is safe inside URLs, JWT segments, and filenames.

Local only

Encoding and decoding run entirely in your browser — fine for tokens, credentials, and private snippets.

FAQ

Why is encoded text about a third longer?
Base64 represents every 3 bytes as 4 ASCII characters, so output grows by roughly 33%. That overhead is the cost of being text-safe.
Can it encode files or images?
This tool focuses on text. For data URLs of images, a dedicated file encoder is better — the principle (3 bytes → 4 chars) is the same.