Base64 Encoder and Decoder
Encode UTF-8 text or decode standard Base64 and Base64URL safely. Your input stays in your browser.
- Free, no sign-up
- Text stays in your browser
- Local processing / no upload
Limit: 500,000 character units per input. Oversized pastes are rejected. Drafts stay in this page and are not saved.
Step by step
How to use Base64 Encoder and Decoder
Step 1: Choose Encode for ordinary text or Decode for an encoded value. Select Standard Base64 or Base64URL to match your destination or source.
Step 2: Select Convert Base64. Decoding checks alphabet, padding and UTF-8; it does not interpret arbitrary binary files as text.
Step 3: Inspect and copy the result. Base64 is reversible encoding, so do not treat encoded secrets as protected.
Example to try
Encode Hello, world! using Standard Base64. The output is SGVsbG8sIHdvcmxkIQ==. Decoding that value returns the original text.
Encode Unicode text with the correct alphabet
The encoder converts text into UTF-8 bytes before creating Base64. This supports accented letters, non-Latin writing and emoji without treating JavaScript character codes as bytes. Standard Base64 uses plus and slash characters and includes padding where required. Base64URL uses hyphen and underscore and omits trailing padding, which is useful when an external format expects the URL-safe alphabet.
Decode text rather than arbitrary binary data
Select the alphabet used by the source and choose Decode. Whitespace is ignored during decoding, but invalid characters, padding and noncanonical trailing bits produce an error. Decoded bytes must be valid UTF-8 text. An image or archive encoded as Base64 can contain binary bytes that are not text; this tool rejects those rather than silently replacing invalid characters in a misleading output.
Output limits and local processing
Base64 increases the number of characters needed to represent most plain text and is not a compression method. Encoding an already encoded value simply wraps it again. Use the matching direction once for each encoding layer, and compare the decoded result with the format expected by your application before copying it into a configuration or API request.
Inputs and results are held only in this page's memory. Developer inputs accept up to 500,000 character units each. Oversized pastes are rejected while preserving the previous input. Generated output is limited to 5,000,000 character units. No sign-up is needed. Copy and download actions are explicit; the tool does not upload your drafts or save them for a later visit.