Encode and decode Base64 with full UTF-8 support and URL-safe mode, plus a URL encoder and JWT decoder on the same page.
Base64
Live conversion as you type.
That input is not valid Base64. Check for missing characters or stray whitespace.
Privacy note: everything runs locally in your browser. As a rule, never paste real production secrets or tokens into any online tool.
URL encoder / decoder
Percent-encode URLs and query strings.
JWT decoder
Inspect the header and payload of a JSON Web Token. Signature is not verified.
That does not look like a valid JWT (expected three dot-separated parts).
Header
Payload
Advertisement
What is Base64 for
Base64 turns binary data or text into a safe ASCII string. Developers use it to embed images in CSS, pass tokens in URLs, and encode API payloads. URL-safe Base64 (Base64URL) swaps two characters so the output never needs escaping in a link.
JWTs (JSON Web Tokens) are three Base64URL parts joined by dots: header, payload, and signature. Decoding shows you the claims inside, but only the server holding the secret can verify the signature.
Why this tool
UTF-8 correct: emoji and non-Latin text round-trip properly.
Live: results update as you type, with clear errors on bad input.
Private: no server, no logs, nothing leaves the tab.
Yes. Text is encoded as UTF-8 first, so accented characters, non-Latin scripts and emoji round-trip correctly, unlike naive Base64 tools that break on them.
What is URL-safe Base64?
URL-safe Base64 replaces + with -, / with _ and drops the = padding, so the output can be pasted into URLs and filenames without escaping. It is the format JWT tokens use.
Is my data uploaded anywhere?
No. Encoding and decoding happen entirely in your browser with JavaScript. Never paste real production secrets into any online tool, including this one.
What does the JWT decoder show?
It decodes the header and payload of a JSON Web Token and pretty-prints them as JSON. It does not verify the signature, so it cannot prove a token is authentic.
Why did decoding fail with an error?
The input is not valid Base64. Common causes are missing padding, stray whitespace or characters outside the Base64 alphabet. Check that you pasted the full string.