Developer
Base64 Encoder and Decoder
Encode and decode Base64 in your browser, including emoji and non-Latin text.
Runs entirely in your browser. Nothing you paste is uploaded.
0 characters · 0 bytes
This runs entirely in your browser. Nothing you paste is sent to us or to anyone else.
How to use it
- Paste your text into the box marked "Text to encode"Paste the text you want encoded, or the Base64 you want back. The Encode and Decode buttons switch direction, and the input label changes with them. Everything happens inside your browser — nothing is uploaded, so there is nothing for us to store, log or lose.
- Read the result as it updatesThere is no button to press. The conversion happens as you type. The output recomputes every time you change the text or one of the options above it.
- Turn on URL-safe if it is going in a URLIt swaps + and / for - and _, which are the characters that break when Base64 is put in a query string or a path. This is the cause of most "it works locally" token bugs.
- Use Wrap at 76 for email and PEMSome older formats require lines no longer than 76 characters. Nothing on the web does, so leave it off unless you know you need it.
- Expect emoji and non-Latin text to surviveEncoding is UTF-8 throughout in both directions, which is where naive implementations mangle anything outside plain ASCII.
- Copy or download the resultThe buttons under the output put it on your clipboard or save it as a file, and each one says exactly what it will copy or download. Any note about something the tool changed or deliberately left alone is shown with the result rather than hidden.
About this tool
Base64 rewrites arbitrary bytes using 64 characters that survive being sent through systems built for text — email bodies, JSON strings, data URIs, HTTP headers. It is an encoding, not encryption: anyone can decode it, and it makes data about a third larger.
The reason to use this tool rather than the first result on a search is that most Base64 tools quietly corrupt anything outside ASCII. The browser functions underneath, `btoa` and `atob`, only accept characters up to code 255, so an emoji or a Tamil character either throws an error or comes back mangled. This tool encodes through UTF-8, so the round trip is exact for any text you can type.
Understanding the result
Encoding turns your text into the Base64 alphabet: A–Z, a–z, 0–9, "+" and "/", padded to a multiple of four with "=".
The URL-safe option uses "-" and "_" in place of "+" and "/" and drops the padding. This is what JWTs and URL parameters use, and feeding one variant to something expecting the other is a common and confusing failure.
Decoding tells you when the result is not text at all. Bytes that are not valid UTF-8 mean you have decoded binary — an image or an archive — rather than something that can be displayed.
Example
Input
Roftr Clouds · ரோஃப்டர்Output
Um9mdHIgQ2xvdWRzIMK3IOCusOCvi+CumuKAjeCuquCvjeCun+CusOCvjQ==Limitations
- Base64 provides no confidentiality whatsoever. Anything encoded can be read by anyone who sees it; do not use it to hide a password or a key.
- Encoded output is about 33% larger than the input. That matters when the result goes into a URL or a database column with a length limit.
- Very large inputs are bounded by your browser's memory. Several megabytes is comfortable; a hundred is not.
- Decoding cannot tell you what the original data was. A decoded string that looks like nonsense may be correctly decoded binary rather than a mistake.
Questions
Is my data uploaded anywhere?
No. The whole tool is JavaScript running on your device — there is no request to send. You can confirm it by opening your browser's network tab, or by disconnecting from the internet and using the page anyway.
Why does my emoji or non-English text break in other Base64 tools?
Because they pass the text straight to the browser's `btoa`, which only handles characters up to code 255 and rejects or truncates the rest. Encoding as UTF-8 first, which this tool does, is what makes emoji, Tamil, Arabic and curly quotes survive the round trip.
What is the difference between Base64 and base64url?
Only three characters. base64url writes "+" as "-" and "/" as "_", and omits the "=" padding, so the result is safe to put in a URL or a filename without further escaping. JWTs use it. Decoding here accepts either without being told which.
Is Base64 a form of encryption?
No, and treating it as one is a real security mistake. It is a reversible representation with no key. Anyone who can see the encoded value can read the original.
Last updated 2026-08-16.
Related tools
- HTML Entity Escape and Unescape
Escape markup so it displays as text, or decode entities back - without ever rendering them.
- JWT Decoder
Read the header, claims and expiry of a JWT in your browser. Decodes only — it cannot verify a signature.
- URL Encoder and Decoder
Percent-encode a URL or a single query value, with the difference made explicit.