How to set default encoding for print?

kj no.email at please.post
Sun Jan 31 17:28:55 CET 2010


In <7slndhFnomU1 at mid.uni-berlin.de> "Diez B. Roggisch" <deets at nospam.web.de> 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 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"ö"

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

kynn



More information about the Python-list mailing list