UnicodeEncodeError when piping stdout, but not when printing directly to the console

Peter Otten __peter__ at web.de
Fri Jan 6 04:34:10 EST 2012


Adam Funk wrote:

> On 2012-01-04, Peter Otten wrote:
> 
>> Adam Funk wrote:
> 
>>> How can I force python (preferably within my python program, rather
>>> than having to set something externally) to treat stdout as UTF-8?
>>
>>
>> $ cat force_utf8.py
>> # -*- coding: utf-8 -*-
>> import sys
>>
>> if sys.stdout.encoding is None:
>>     import codecs
>>     writer = codecs.getwriter("utf-8")
>>     sys.stdout = writer(sys.stdout)
>>
>> print u"Ähnlich üblich nötig"
> 
> That's great, thanks!
> 
> I guess issues like this will magically go away when I eventually move
> to Python 3?

Not "magically", but UTF-8 has become the default encoding...




More information about the Python-list mailing list