How to encode and decode Base64 with UTF-8 text

Convert accents and emoji correctly and distinguish encoding from encryption.

Practical guideUpdated Approx. reading time: 3 min
On this page

Bytes first, then Base64

Base64 represents bytes using letters, digits and a few symbols. Snipshed converts text to UTF-8 bytes first, supporting accents, different scripts and emoji.

Hola encodes as SG9sYQ==. The = sign pads certain outputs; do not remove it when using this standard Base64 tool.

Decode with validation

Choose Decode and paste standard Base64. Formatting whitespace is ignored, but invalid characters, padding or UTF-8 bytes are rejected.

URL-safe Base64 uses other characters and is not the format supported here. Binary files also cannot be displayed as though they were UTF-8 text.

  1. Select encoding or decoding.
  2. Paste the complete text.
  3. Convert and check accents and line breaks.
  4. Copy the result without adding or removing characters.

It does not provide confidentiality

Anyone can reverse Base64. It cannot replace encryption, anonymization or a password; an encoded secret remains readable after decoding.

Conversion is local. If the result goes into a URL, it may also need URL component encoding depending on the receiving system.

Distinguish UTF-8 text, binary bytes and images

Text to binary represents UTF-8 bytes using eight digits per byte. A uses one byte and é uses two, so counting binary groups is not the same as counting letters. Aé becomes 01000001 11000011 10101001, whereas its Base64 is QcOp. To convert binary back to text, select decoding and preserve zeros, ones and spaces; a length not divisible by eight or invalid UTF-8 bytes produces an error. The limit is 100,000 bytes. For a picture, use Image to Base64: select the sample PNG and check that the Data URL starts with data:image/png;base64,. The prefix declares the file type and belongs to the complete URL. Encoding preserves original bytes without resizing or compression. It adds approximately one third in size, plus the header. Reserve this approach for small images and test the complete string at its destination. Representing bytes as text does not encrypt them.

Aé
UTF-8: 01000001 11000011 10101001
Base64: QcOp

Criteria for reviewing and delivering the result

A Unicode trial can use an accented word, emoji and final line break. Encode the exact sequence and decode it again to verify preservation. If another system differs, inspect character encoding and Base64 variant first. Alphabet or padding differences may reflect a format unsupported by this converter rather than a damaged source message. A defined sample helps distinguish those representation issues from accidental truncation during transfer.

Document whether the exchange involves UTF-8 text or binary data. This workflow is for text, not interpreting an arbitrary image or file. Use Image to Base64 for an image Data URL and retain the prefix expected by the destination. Base64 is reversible, so output preserves the sensitivity of the original content despite looking unreadable. Do not publish a real secret as a demonstration. Keep a fictitious reference and verify complete copying. For a string placed in a URL, check the receiving variant and whether component encoding is also required instead of repeatedly applying transformations blindly. The appropriate sequence depends on the destination’s representation rules and should be established before sharing the generated value.

TRY IT YOURSELF

Check a round trip

Encode Hello and copy the result. Switch to Decode and paste SGVsbG8=. Repeat with the Unicode sample to test accents.

You recover Hello exactly. Unicode encoding operates on UTF-8 bytes: an accented letter may use more bytes than an ASCII letter.

Do not remove the = padding from standard Base64. Non-UTF-8 content is rejected; use the image Data URL tool for images.

View tool screenshot
Base64 encoder and decoder example using sample data
Snipshed screenshot in Chrome using the described example. Downloadable files contain fictitious data.