On 3/7/2012 3:57 PM, Peter Kleiweg wrote:
In Python 3, there seem to be two ways to set sys.stdout to utf-8 after the script has started: sys.stdout = codecs.getwriter('utf-8')(sys.stdout.detach()) sys.stdout = io.TextIOWrapper(sys.stdout.detach(), encoding='utf-8') I guess the second is better. At start-up, type(sys.stdout) is <class '_io.TextIOWrapper'>, and it's also after using the second method. After using the first method, type(sys.stdout) is changed to <class 'encodings.utf_8.StreamWriter'>. Should I always use the second method?
I would. The io module is more recent an partly replaces codecs. The latter remains for back compatibility and whatever it can do that io cannot.
-- Terry Jan Reedy -- http://mail.python.org/mailman/listinfo/python-list