How to set default encoding for print?

Diez B. Roggisch deets at nospam.web.de
Sun Jan 31 10:54:23 EST 2010


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 site.py...

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"ö"



Diez



More information about the Python-list mailing list