[Pythonmac-SIG] How to print unicode to OS-X Terminal.app

Christopher Barker Chris.Barker at noaa.gov
Thu Feb 14 21:10:51 CET 2008


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.

-Chris



-- 
Christopher Barker, Ph.D.
Oceanographer

Emergency Response Division
NOAA/NOS/OR&R            (206) 526-6959   voice
7600 Sand Point Way NE   (206) 526-6329   fax
Seattle, WA  98115       (206) 526-6317   main reception

Chris.Barker at noaa.gov


More information about the Pythonmac-SIG mailing list