Base64 encoder and decoder
Encode text to standard Base64 after converting it to UTF-8 bytes, so accents, Hangul and emoji survive. Output uses + and / with = padding, no line wraps.

Enter text to see output.
What to know
This page turns text into Base64 in two steps: the text is first converted to UTF-8 bytes, then every three bytes are regrouped into four characters from A to Z, a to z, 0 to 9, plus and slash. Hello becomes SGVsbG8=, and 한국어 becomes 7ZWc6rWt7Ja0 because each syllable is three bytes.
Because the bytes come from UTF-8, accents and emoji are safe: café ☕ gives Y2Fmw6kg4piV. Skipping the UTF-8 step is the classic mistake, where a plain browser call fails on any character outside Latin-1, and this page avoids it.
The output is always the standard alphabet with = padding at the end and no line wrapping, which is what data URIs and JSON fields expect. It is about one third larger than the input, as 4 characters are produced for every 3 bytes. The URL-safe variant, which swaps + for -, / for _ and drops the =, is not offered, so fix those three by hand with find and replace when a token must travel in a URL.
Decoding is not on this page, which is fixed to encoding. Open the main text encoder and choose Base64 decode to reverse a string.
Choose a specific task 1
Related tools 4
How to use Base64 encoder and decoder
- Paste the text, for example the credential pair user:pass or a short note, into the Text input box.
- Read the Output panel: user:pass encodes to dXNlcjpwYXNz.
- Copy the string with the copy icon and place it where the format requires, such as after Basic in an authorization header.
- For a URL-safe token, replace + with -, / with _ and remove trailing = in Clean using find and replace.
Quick answers
Does it handle Korean, accents and emoji?
Yes. Text is converted to UTF-8 bytes first, so 한국어 gives 7ZWc6rWt7Ja0 and café ☕ gives Y2Fmw6kg4piV, with no errors on non-Latin characters.
Why does the output end with = or ==?
Padding fills the last group when the byte count is not a multiple of three. Hello has five bytes, so it ends with one =.
Is there a URL-safe Base64 option?
No, the output always uses + and / with padding. Replace those characters by hand if the string will sit inside a URL.
How much bigger is the result?
About 33 percent, because 3 bytes become 4 characters. A 30-byte text turns into exactly 40 characters.
