Encode or decode Base64 strings.
This tool converts text to Base64 and back. Encoding first turns your text into UTF-8 bytes, so accented letters, non-Latin scripts and emoji survive the round trip. Decoding does the reverse and expects the result to be readable UTF-8 text. It works on text you type or paste; there is no file upload, so it cannot turn an image into a data URI. Both directions run in your browser, and nothing is sent anywhere.
Any decoding failure shows the same message, "Invalid Base64 string", and there are three usual causes. First, the input uses the URL-safe alphabet, with - and _ in place of + and /. JWT segments use this variant, and so do some URL parameters; swap those characters back before decoding. Second, the characters are not Base64 at all, for example a stray quote or part of a URL copied along with it. Third, the Base64 is valid but the bytes inside are not text: an encoded image or PDF cannot be shown as UTF-8, so the tool reports an error even though the string itself is fine.
Two things to keep in mind when you encode. Base64 output is about a third larger than the input, because every three bytes become four characters, which is why large images embedded as data URIs bloat HTML and CSS. And Base64 is an encoding, not encryption: anyone can reverse it in a second, so it offers no protection for passwords or personal data.