How to set default encoding for print?

kj at
Sun Jan 31 17:28:55 CET 2010

In <7slndhFnomU1 at> "Diez B. Roggisch" <deets at> writes:

>Am 31.01.10 16:38, schrieb kj:
>> It gets tedious to have to append .encode('utf-8') to all my unicode
>> strings when I print them, as in:
>>      print foobar.encode('utf-8')
>> I want to tell python to apply this encoding automatically to
>> anything argument passed to print.
>> How can I do this?
>> TIA!
>> K
>> PS: BTW, sys.setdefaultencoding is *not* the answer, since this
>> method gets removed by

>Just wrap sys.stdout in a codecs-module based file-wrapper.

>import codecs
>import sys

>sys.stdout = codecs.getwriter("utf-8")(sys.stdout)

>print u"ö"

That's exactly what I was looking for.  Thanks!


More information about the Python-list mailing list