WTF? Printing unicode strings

Ron Garret rNOSPAMon at flownet.com
Thu May 18 21:04:09 EDT 2006


In article <1147998139.268318.315250 at y43g2000cwc.googlegroups.com>,
 "Serge Orlov" <Serge.Orlov at gmail.com> wrote:

> Ron Garret wrote:
> > In article <1147992722.970761.220840 at j73g2000cwa.googlegroups.com>,
> >  "Serge Orlov" <Serge.Orlov at gmail.com> wrote:
> >
> > > Ron Garret wrote:
> > > > In article <mailman.5906.1147989402.27775.python-list at python.org>,
> > > >  Robert Kern <robert.kern at gmail.com> wrote:
> > > >
> > > > > Ron Garret wrote:
> > > > >
> > > > > > I forgot to mention:
> > > > > >
> > > > > >>>>sys.getdefaultencoding()
> > > > > >
> > > > > > 'utf-8'
> > > > >
> > > > > A) You shouldn't be able to do that.
> > > >
> > > > What can I say?  I can.
> > > >
> > > > > B) Don't do that.
> > > >
> > > > OK.  What should I do instead?
> > >
> > > Exact answer depends on what OS and terminal you are using and what
> > > your program is supposed to do, are you going to distribute the program
> > > or it's just for internal use.
> >
> > I'm using an OS X terminal to ssh to a Linux machine.
> 
> In theory it should work out of the box. OS X terminal should set
> enviromental variable LANG=en_US.utf-8, then ssh should transfer this
> variable to Linux and python will know that your terminal is utf-8.
> Unfortunately AFAIK OS X terminal doesn't set that variable and most
> (all?) ssh clients don't transfer it between machines. As a workaround
> you can set that variable on linux yourself . This should work in the
> command line right away:
> 
> LANG=en_US.utf-8 python -c "print unichr(0xbd)"
> 
> Or put the following line in ~/.bashrc and logout/login
> 
> export LANG=en_US.utf-8

No joy.

ron at www01:~$ LANG=en_US.utf-8 python -c "print unichr(0xbd)"
Traceback (most recent call last):
  File "<string>", line 1, in ?
UnicodeEncodeError: 'ascii' codec can't encode character u'\xbd' in 
position 0: ordinal not in range(128)
ron at www01:~$ 

rg



More information about the Python-list mailing list