Christopher Barker wrote: > Kent Johnson wrote: >> You can, with sys.setdefaultencoding(). See here for discussion of how: >> http://blog.ianbicking.org/illusive-setdefaultencoding.html > > > and here for arguments that this is a bad idea (mostly because it makes > > your code non-portable): > > http://faassen.n--tree.net/blog/view/weblog/2005/08/02/0 > > Thanks for the links. > > I'm nervous about messing with sys.setdefaultencoding() too - partly > because I have no idea what all the implications are. > > It sure would be nice to be able to just change it for "print" though. > Even if it's going to us ascii, it really should use "replace" or > "ignore" -- it's much better to get something, rather than an error. > It's just a handy utility function after all. > > Maybe I can re-map print to something like: > > TerminalEncoding = "utf-8" > def uni_print(object): > sys.stdout.write(unicode(object).encode(TerminalEncoding)) > sys.stdout.write("\n") > > > but print is a statement, rather than a function, so I don't know how to > do that. I may start using a utility function like that for my code, though.
Just replace sys.stdout with an object with a write() method that does what you want. If you need to use the original stdout for the actual output then you can get to is from sys.__stdout__. -- Robin Dunn Software Craftsman http://wxPython.org Java give you jitters? Relax with wxPython! _______________________________________________ Pythonmac-SIG maillist - Pythonmac-SIG@python.org http://mail.python.org/mailman/listinfo/pythonmac-sig