How to use the uuencode tool
- Set Direction to Encode or Decode.
- To encode, paste text into Input and set File name in the begin line. The default is
message.txt. - To decode, paste the whole block, from the
beginline to theendline. Lines beforebeginare skipped. - Copy the result. Decoded bytes that are not valid text are shown as hex.
What it does and when to use it
Uuencoding dates from the early days of Unix networking. It was the standard way to send files by email and to post them on Usenet until MIME and Base64 replaced it. You still meet it in old mailing list archives, retro computing, some legacy batch systems that print reports with attachments, and in programming exercises.
Use the decoder to recover the contents of an old block, and the encoder to create test data for a legacy system or a parser.
The close relative XXencode uses the same line layout with a different alphabet that survives systems that change punctuation. For anything new, use Base64, which is the modern standard. To look at decoded binary bytes in detail, paste the hex into the hex dump viewer.
How it works
- Text becomes UTF-8 bytes, split into lines of at most 45 bytes.
- Each line starts with a length character: 32 plus the number of bytes, so 45 gives
M. - Every 3 bytes are split into four 6-bit values, and each value is written as the character with code 32 plus the value. A value of zero is written as a backtick instead of a space, so the line cannot lose trailing spaces in transit. A short last group is filled with zero bytes.
- A line with just a backtick marks the end of the data, followed by
end.
The decoder reverses this and accepts either a space or a backtick for zero. It uses the length character to drop the filler bytes. It runs in your browser.
Worked examples
Cat (Encode)
begin 644 message.txt
#0V%T
`
end
“Cat” is 3 bytes, so the length character is # (32 + 3), followed by exactly four characters. Decoding the same block, with any file name, gives back Cat.
Hello, world! (Encode, file name hi.txt)
begin 644 hi.txt
-2&5L;&\L('=O<FQD(0``
`
end
Here the length character - means 13 bytes. Those 13 bytes need five groups of four characters; the two backticks at the end encode the zero filler.
Limits and tips
- The tool handles text input and on-screen output only. It does not read or save binary files.
- If a decoded block gives an error about a line, check that no line was wrapped or trimmed by an email program.
- Some old encoders added a checksum character at the end of each line. The decoder reads only as many bytes as the length character says, so such extra characters are ignored.
Frequently asked questions
What is uuencoding?
What does begin 644 mean?
What is the first character of each line?
Can I decode an attachment from an old email?
Is uuencoded data encrypted?
Sources
- uuencode — The Open Group Base Specifications (POSIX) — The Open Group, accessed 2026-10-08
How do we know nothing is uploaded? Test it yourself on the privacy proof page.