-On [20080108 12:09], Nick Coghlan ([EMAIL PROTECTED]) wrote:
>Redirecting stdout also fails for both the trunk and the py3k branch for 
>me on Ubuntu. If I redirected stderr as well then the tests worked again.
>
>Given that a pipe/file and the console very likely *do* have different 
>encodings, maybe the test is just wrong?

This sounds like a problem I recently blogged about (verbatim copy):

When you use Python with sys.stdout you might run into a problem where
sys.stdout.encoding suddenly becomes None. This happens due to the fact that
upon using a pipe or redirection, at least under Unix, it falls back to not
knowing anything about the target. In order to work around this you can add a
fallback to use locale.getpreferredencoding(). So if you use encode() on a
string you can do something like:

from locale import getpreferredencoding
 
text = u"Something special"
 
print text.encode(sys.stdout.encoding or getpreferredencoding() or 'ascii', 
'replace')

This is how we currently use it within Babel as well for printing the locale
list.

-- 
Jeroen Ruigrok van der Werven <asmodai(-at-)in-nomine.org> / asmodai
イェルーン ラウフロック ヴァン デル ウェルヴェン
http://www.in-nomine.org/ | http://www.rangaku.org/
Angel to some, Daemon to others...
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to