Encoding Toolkit
Encode or decode UTF-8 Base64 and URL text in your browser. Clear component and full-URI modes, strict validation, and no uploads.
Use URL component for one value, such as a search term. Full URI keeps the separators in a whole address. Base64 represents text as letters, numbers and symbols.
Input and output limit: 1,048,576 UTF-8 bytes each. Invalid text or an oversized result stops conversion; nothing is truncated.
Choose an operation, enter text, then Convert.
Background processing · 1,048,576 bytes of input and output.
Editing the input or operation clears the previous result. Empty text is a valid input and produces an empty result.
TEXT, REPRESENTED DIFFERENTLY
Keep the meaning.
Change the encoding.
Base64 that understands your text.
Text is converted to UTF-8 bytes before Base64 encoding, so emoji and non-English scripts round trip correctly. Decoding requires standard, canonical Base64 with padding when needed, no whitespace, and valid UTF-8 bytes. URL-safe Base64 using - and _ is a different alphabet and is not accepted. This tool does not decode binary files.
A component or a complete URI?
Choose URL component for one value, such as a query parameter. It turns separators like / ? & = # into escaped data. For example, a/b becomes a%2Fb. Choose Full URI to keep those separators meaningful while encoding spaces and Unicode in a complete address. This uses JavaScript’s encodeURI and decodeURI semantics; it does not validate or open an address.
Decode exactly once.
Full-URI decoding deliberately leaves escaped reserved separators such as %2F intact. Component decoding turns them back into characters. Neither mode treats + as a space: these are URI operations, not HTML form decoding. Repeated encoding also escapes existing percent signs. Malformed percent sequences, invalid UTF-8, and unpaired Unicode surrogates produce a visible error.
Base64 is a representation, not encryption. Processing happens in memory with a local worker; if workers are unavailable, direct processing is limited to 100,000 UTF-16 input characters. No supplied URL is fetched and no content is saved in storage or page URLs. Clear or leave the page to discard the workspace; copy and download happen only when you choose them.