uuencode help

Martin von Loewis loewis at informatik.hu-berlin.de
Mon Sep 10 16:07:48 CEST 2001

dcook at redhat.com (David M. Cook) writes:

> A python script to generate a uuencoded file:
>   import uu
>   import os
>   filename = "/usr/games/chromium/data/png/chrome.jpg"
>   infile = open(filename, "r")
>   outfile = open("/tmp/chrome.uu", "w")
>   uu.encode(infile, outfile, os.path.basename(filename), 0644)

Thanks. I've researched that a little further, and found that this is
likely a bug in the Linux uuencode. According to the Single Unix
definition of uuencode, at


the range of characters used is ASCII 0x20-0x5f, whereas Linux
uuencode apparently uses 0x21-0x60 (with 0x60 representing a value of
0). This appears to be the BSD definition of the uuencode format, see


Please have a look at


which elaborates the rationale for this deviation. Also note that
either encoding decodes properly, as you can mask each character with
0x3F, to get the encoded value.

So in short, no need to worry. If you want your code to work like the
Linux/BSD uuencode, you should replace all 0x20 characters inside the
encoded text with 0x60.


More information about the Python-list mailing list