Base64 Encode / Decode
Convert text or an uploaded file to Base64 and back. Handy for data URIs, JWTs, config files and debugging. Fully Unicode-safe so emoji and non-Latin scripts survive the round trip.
How to use base64 encode / decode
- Enter your text or upload a file
Paste plain text or Base64 to encode/decode, or click Upload file to convert any file (image, PDF, font...) to Base64.
- Pick a direction and format
Click Encode or Decode. Tick URL-safe if you need base64url (used in JWTs and URL parameters) instead of standard Base64.
- Copy the output
Grab the result from the output box with the copy button.
Features
Uses proper UTF-8 handling so emoji and non-English characters encode and decode correctly.
Upload any file — not just text — and get its Base64-encoded content, ready to paste into a data URI or config.
Switch to base64url encoding (RFC 4648) for JWTs, URL query parameters and filenames, where standard Base64's +, / and = characters cause problems.
Runs in your browser; nothing is transmitted or stored, including uploaded files.
Supported formats and limitations
Text and structured input supported by this tool.
Use cases include personal workflows, content preparation, and quick checks. Review output before relying on it for legal, financial, accessibility, or production decisions.
Frequently asked questions
Does Base64 encrypt my data?
No. Base64 is an encoding, not encryption. Anyone can decode it — never use it to protect secrets.
Can it handle emoji and other languages?
Yes. The tool encodes UTF-8 correctly, so multi-byte characters survive encoding and decoding.
What's the difference between standard Base64 and URL-safe (base64url)?
Standard Base64 uses +, / and = padding, which have special meaning in URLs and filenames. URL-safe Base64 replaces + with -, / with _, and drops the = padding, so the result can be used directly in a URL or filename without extra escaping.
Can I encode an uploaded file, not just text?
Yes — click Upload file to encode any file's raw bytes to Base64. Nothing is uploaded to a server; the file is read and encoded entirely in your browser.
Why did decoding fail?
The input probably isn't valid Base64 — check for stray spaces, line breaks or missing padding characters.