Updated: 2022/Sep/29

Please read Privacy Policy. It's for your privacy.

UUENCODE(5)                   File Formats Manual                  UUENCODE(5)

     uuencode - format of an encoded uuencode file

     Files output by uuencode(1) consist of a header line, followed by a
     number of body lines, and a trailer line.  The uudecode(1) 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 starts with the word "begin", a space, a file mode (in
     octal), a space, and finally a string which names the file being encoded.

     The central engine of uuencode(1) is a six-bit encoding function which
     outputs an ASCII character.  The six bits to be encoded are treated as a
     small integer and added with the ASCII value for the space character
     (octal 40).  The result is a printable ASCII character.  In the case
     where all six bits to be encoded are zero, the ASCII backquote character
     ` (octal 140) is emitted instead of what would normally be a space.

     The body of an encoded file consists of one or more lines, each of which
     may be a maximum of 86 characters long (including the trailing newline).
     Each line represents an encoded chunk of data from the input file and
     begins with a byte count, followed by encoded bytes, followed by a

     The byte count is a six-bit integer encoded with the above function,
     representing the number of bytes encoded in the rest of the line.  The
     method used to encode the data expands its size by 133% (described
     below).  Therefore it is important to note that the byte count describes
     the size of the chunk of data before it is encoded, not afterwards.  The
     six bit size of this number effectively limits the number of bytes that
     can be encoded in each line to a maximum of 63.  While uuencode(1) will
     not encode more than 45 bytes per line, uudecode(1) will tolerate the
     maximum line size.

     The remaining characters in the line represent the data of the input file
     encoded as follows.  Input data are broken into groups of three eight-bit
     bytes, which are then interpreted together as a 24-bit block.  The first
     bit of the block is the highest order bit of the first character, and the
     last is the lowest order bit of the third character.  This block is then
     broken into four six-bit integers which are encoded one by one starting
     from the first bit of the block.  The result is a four character ASCII
     string for every three bytes of input data.

     Encoded lines of data continue in this manner until the input file is
     exhausted.  The end of the body is signaled by an encoded line with a
     byte count of zero (the ASCII backquote character `).

     Obviously, not every input file will be a multiple of three bytes in
     size.  In these cases, uuencode(1) will pad the remaining one or two
     bytes of data with null characters until a three byte group is created.
     The byte count in a line containing null padding will reflect the actual
     number of bytes encoded, making it possible to convey how many bytes are

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

     mail(1), uudecode(1), uuencode(1), ascii(7)

     The uuencode file format appeared in 4.0BSD.

     The interpretation of the uuencode format relies on properties of the
     ASCII character set and may not work correctly on non-ASCII systems.

NetBSD 10.99                     March 4, 2019                    NetBSD 10.99