-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