Re: WTF? Printing unicode strings



In article <1148029074.083644.112370@xxxxxxxxxxxxxxxxxxxxxxxxxxxx>,
"Serge Orlov" <Serge.Orlov@xxxxxxxxx> wrote:

Ron Garret wrote:
In article <1148001708.183506.296240@xxxxxxxxxxxxxxxxxxxxxxxxxxxx>,
"Serge Orlov" <Serge.Orlov@xxxxxxxxx> wrote:

Ron Garret wrote:
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@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@www01:~$

What version of python and what shell do you run? What the following
commands print:

python -V
echo $SHELL
$SHELL --version

ron@www01:~$ python -V
Python 2.3.4
ron@www01:~$ echo $SHELL
/bin/bash
ron@www01:~$ $SHELL --version
GNU bash, version 2.05b.0(1)-release (i386-pc-linux-gnu)
Copyright (C) 2002 Free Software Foundation, Inc.
ron@www01:~$

That's recent enough. I guess the distribution you're using set LC_*
variables for no good reason.

Nope:

ron@www01:~$ export | grep LC
ron@www01:~$

Either unset all enviromental variables
starting with LC_ and set LANG variable or overide LC_CTYPE variable:

LC_CTYPE=en_US.utf-8 python -c "print unichr(0xbd)"

Should be working now :)

Nope:

ron@www01:~$ LC_CTYPE=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)

rg
.



Relevant Pages

  • Re: user selection for ssh connections
    ... By excluding them from SSH, I assume that you do not want them to have shell access. ... The disabled shell will give an error message, kick them out, but still give them web/ftp/mail access. ... echo "WARNING! ...
    (Focus-Linux)
  • Re: WTF? Printing unicode strings
    ... variable to Linux and python will know that your terminal is utf-8. ... ssh clients don't transfer it between machines. ... What version of python and what shell do you run? ...
    (comp.lang.python)
  • Re: WTF? Printing unicode strings
    ... variable to Linux and python will know that your terminal is utf-8. ... ssh clients don't transfer it between machines. ... What version of python and what shell do you run? ... Either unset all enviromental variables ...
    (comp.lang.python)
  • Re: PYTHONPATH on OS X
    ... ignored by the Python interactive shell. ... Using bash on OS X 10.4.10. ... %:~ user$ echo $PYTHONPATH ...
    (comp.lang.python)
  • Re: WTF? Printing unicode strings
    ... variable to Linux and python will know that your terminal is utf-8. ... ssh clients don't transfer it between machines. ... What version of python and what shell do you run? ... ron@www01:~$ echo $SHELL ...
    (comp.lang.python)