zip upload: encode any string to ascii that could contain non-ascii, before print

The Linux terminal is by default an ascii device. So printing unicode raises a unicode exception. The flow of the code here is fine -- except for the print. 

So I've left the print in place (it would be better to use python logging, but I'm not going to get religious), and added the essential encode. The errors='replace' kwarg is needed to ensure that 'something' is printed instead of non-printable characters. By default this is a normal ascii '?'.