uuencode and xxencode Encoder / Decoder
WebEverything runs locally in your browser — nothing is uploaded
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
- Choose the mode: encode or decode
- Choose the variant (uuencode / xxencode / base64)
- For encoding, type text; for decoding, paste the whole uuencode block
- 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
Base32
EncodingConvert text to and from Base32 using the standard alphabet or base32hex. Non-ASCII text is encoded as UTF-8 bytes; decoding tolerates lowercase.
Base64
EncodingConvert text to Base64 and back, with correct UTF-8 handling for accents, CJK and emoji. Runs entirely in your browser — nothing is uploaded.
Hex Converter
EncodingConvert between hexadecimal and text, accepting 0x, \x, spaces and colons, with UTF-8 byte counts shown. Runs in your browser.
URL Parser
WebParse a URL into scheme, host, port, path, query parameters and fragment, with each parameter shown raw and decoded. Runs entirely in your browser.
User-Agent Parser
WebParse a user agent into browser, version, OS, device type and engine, and see which rules matched. Pattern matching only. Runs entirely in your browser.
HTTP Status Codes
WebLook up an HTTP status code for its meaning, 1xx–5xx class, typical uses and common traps. Runs entirely in your browser.