encode descriptions as UTF8 in output

Under Python 3 are now Unicode and not byte-oriented and so need to be
explicitly encoded when added to the output.