Ok, 'ascii' as default kwarg is reasonable.
I don't think we should handle this differently on python3 and python2, better stick to the same default.

- using 'utf-8' is more convenient often times
- using 'ascii' is safer

Personally, I'd stick to 'ascii': Better let the user explicitly define what the encoding is and fail if decoding fails,  using '--encoding' on the command line is not too hard.