XXENCODE 1 "29 August 1990"

Table of contents


xxencode,xxdecode - encode/decode a binary file for transmission via mail


xxencode [ -u ] [ -x ] [ file ] [ remotefile ]

xxdecode [ file ]


xxencode and xxdecode are used to send a binary file via uucp (or other) mail.

xxencode takes the named source file (default standard input) and produces an encoded version on the standard output. The encoding uses only printing ASCII characters, and includes the mode of the file and the remotename for recreation on the remote system.

xxdecode reads an encoded file, which might have been produced by either uuencode or xxencode, strips off any leading and trailing lines added by mailers, and recreates the original file with the specified mode and name.

With the -u option, xxencode uses uuencoding (and uudecode can decode the output); with the -x option, or no options at all, it uses xxencoding.

Uuencoding uses a 64-character set that includes ASCII characters 32 through 95, or 33 through 96; some of these are subject to mail gateway corruption. Xxencoding uses a 64-character set consisting only of letters, digits, plus, and minus, which can generally pass through mail gateways intact.

xxencode outputs a byte count and a CRC-16 checksum following the encoded file. These are ignored by uudecode but checked by xxdecode. The checksum and byte count validations are important, because uudecode usually cannot detect corruption, while xxdecode can.

The encoded file has an ordinary text form and can be edited by any text editor to change the mode or remote name.

Each xxencoded line has a unique prefix, and xxdecode will process only lines with that prefix. This makes it possible to easily reconstruct a mailing of a split(1) xxencoded file just by appending the pieces in the correct order; mail headers and trailers need not be stripped.

Regrettably, uuencode and uudecode provide no convenient way to do this; mail headers and trailers must be manually stripped from the concatenated parts before running uudecode.


bsplit(1), mail(1), split(1), uuencode(1), uuencode(5), uusend(1C), uucp(1C), uux(1C)


These programs and their manual page are placed in the public domain.


Original uu{de,en}code programs (placed in public domain):
Mark Horton
UC Berkeley

New xx{de,en}code programs:
Nelson H. F. Beebe
Center for Scientific Computing
Department of Mathematics
220 South Physics Building
University of Utah
Salt Lake City, UT 84112
Tel: (801) 581-5254


The file is expanded by 35% (3 bytes become 4 plus control information) causing it to take longer to transmit.

The user on the remote system who is invoking xxdecode must have write permission on the specified file.