---
name: "uuencode"
section: "5"
platform: "linux"
package: "sharutils"
version: "4.15.2-6"
release: "Arch Linux 2026-11-01"
platforms: ["linux", "freebsd", "openbsd"]
url: "https://new.carta.tech/uuencode/5"
---

# uuencode(5)

format of an encoded uuencode file

## NAME

uuencode - format of an encoded uuencode file

## DESCRIPTION

Files output by [uuencode(1)](/uuencode/1.md) consist of a header line, followed by a number of body lines, and a trailer line. The [uudecode(1)](/uudecode/1.md) command will ignore any lines preceding the header or following the trailer. Lines preceding a header must not, of course, look like a header.

The header line is distinguished by having the first 5 characters be *begin* followed by a space, or else a hyphen and either *base64* or *encoded* or both (also separated with a hyphen). The *base64* option says the file has been encoded using base64. The *encoded* option says the output file *name* has been base64 encoded.  It is never encoded with traditional uuencoding. This is a GNU extension. These are followed by a mode (in octal), and a string which names the remote file.  The mode is separated from the *begin* clause and the file name by a single space character.

### Traditional uuencoding

The traditional *uuencoded* file body consists of a number of lines, each at most 62 characters long (including the trailing newline). These consist of a character count letter, followed by the encoded characters, followed by a newline. The character count is a single printing character, and represents an integer, the number of bytes the rest of the line represents. Such integers are always in the range from 0 to 63 and can be determined by subtracting the character space (octal 40) from the character.

Groups of 3 bytes are stored in 4 characters, 6 bits per character. All are offset by a space to make the characters printing. The last line may be shorter than the normal 45 bytes. If the size is not a multiple of 3, this fact can be determined by the value of the count on the last line. Extra garbage will be included to make the character count a multiple of 4. The body is terminated by a line with a count of zero. This line consists of one ASCII space.

The trailer line consists of *end* on a line by itself.

### base64 encoding

*base64* encoded files follow the specified format for the body, but also include a *begin-base64* header and a trailer line of four *=* characters.

## EXAMPLES

```
begin-base64-encoded 644 VE9ETw==
```

This introduces a base64 encoded file named, *TODO* with that name encoded using base64 encoding.

```
begin-encoded 644 5$]$3P``
```

This introduces an encoded file named, *TODO* with that name encoded using uuencoding. The encoding is a lot less friendly.  Please prefer base64 encoding.

## CONFORMING TO

IEEE Std 1003.1, plus extensions

The *-encoded* suffix to the *begin* header line is a GNU extension.  Recipients must have the GNU *uudecode* program to decode them.

## SEE ALSO

[uuencode(1)](/uuencode/1.md), [uudecode(1)](/uudecode/1.md), base64(1GNU)

## HISTORY

The *uuencode* file format appeared in BSD 4.0 .
