Print encoding problems in console
Pedro Abranches
pedrof.abranches at gmail.com
Fri Jul 15 20:02:57 EDT 2011
Hello everyone.
I'm having a problem when outputing UTF-8 strings to a console.
Let me show a simple example that explains it:
$ python -c 'import sys; print sys.stdout.encoding; print u"\xe9"'
UTF-8
é
It's everything ok.
Now, if you're using your python script in some shell script you might have
to store the output in some variable, like this:
$ var=`python -c 'import sys; print sys.stdout.encoding; print u"\xe9"'`
And what you get is:
Traceback (most recent call last):
File "<string>", line 1, in <module>
UnicodeEncodeError: 'ascii' codec can't encode character u'\xe9' in position
0: ordinal not in range(128)
So, python is not being able to detect the encoding of the output in a
situation like that, in which the python script is called not directly but
around ``.
Why does happen? Is there a way to solve it either by python or by shell
code?
Thanks,
Pedro Abranches
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-list/attachments/20110716/4b7b3ee0/attachment.html>
More information about the Python-list
mailing list