piapia123
en

uuencode and xxencode Encoder / Decoder

Web

Everything runs locally in your browser — nothing is uploaded

Input
Drop a file here to load its contents
Output

uuencode is the mail- and Usenet-era encoding for carrying binary in plain text: every 3 bytes become 4 visible characters, and the first character of each line states how many bytes that line holds. This tool supports uuencode, xxencode and the base64 variant. Encoding emits a complete `begin` / `end` block you can paste into mail or save as a `.uu` file. Decoding validates strictly: a line whose declared length does not match its actual characters, or a character outside the alphabet, is reported with its line number — nothing is silently truncated. Non-ASCII text is encoded as UTF-8 bytes. Everything runs locally in your browser.

Features

  • Three variants: uuencode, xxencode, base64 variant
  • Encoding emits a full begin / end block, ready to save
  • Decoding validates strictly and names the failing line
  • A declared length that does not match its characters is an error, never a truncation
  • Zero bytes use a backtick (never eaten by mail systems); decoding accepts both backtick and space
  • Adjustable bytes per line (30–60) and a custom filename
  • Decoded output reports the filename, mode, byte count and number of data lines

How to use

  1. Choose the mode: encode or decode
  2. Choose the variant (uuencode / xxencode / base64)
  3. For encoding, type text; for decoding, paste the whole uuencode block
  4. Click Copy to take the result

FAQ

What is the first character of a uuencode line?
It is the number of bytes on that line plus 32. For example `M` is 0x4D = 77, minus 32 gives 45 — that line holds 45 bytes. A count of 0 is written as a backtick `` ` `` (traditionally a space may appear too) and marks the end of the data.
Why does uuencode use a backtick for zero instead of a space?
Because mail and forum systems routinely strip trailing spaces, but they leave backticks alone. If zero were a space, trailing zeros would vanish in transit and the decoded file would come out a few bytes short. The backtick was chosen to survive transport.
Is the base64 variant the same as plain Base64?
Same alphabet, different wrapper. The base64 variant (`begin-base64 … ====`) is a member of the uuencode family: it puts base64 data inside the same begin/end frame, so it obeys the same whole-line rules. Bare Base64 has no such header or terminator.
What does "line N says it holds X bytes but has Y" mean?
It means the line was altered: characters were lost in copying, or a line break slipped in. Every uuencode line is self-describing (it declares its own length), so once the two disagree the whole line is untrustworthy. The tool refuses rather than truncating to the shorter one.

Related tools