Python/environment problem with char encoding/decoding

G

Gabriel Rossetti

Hello everyone,

I originally posted this on the Twisted mailing list, but now it seams
to be a more general python/environment problem. If I run the attached
example in Eclipse, it works, if I run it from a terminal, it doesn't, I
get :

$ python xml_parser_test.py
Traceback (most recent call last):
File "xml_parser_test.py", line 30, in <module>
res = rawXmlToElement("<t>reçu</t>")
File "xml_parser_test.py", line 21, in __call__
tmp.addRawXml(s)
File "/usr/lib/python2.5/site-packages/twisted/words/xish/domish.py",
line 538, in addRawXml
self.children.append(SerializedXML(rawxmlstring))
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 5:
ordinal not in range(128)

Does anyone understand why it doesn't work outside of Eclipse? My OS is
Linux (Ubuntu 8.04).

Thank you,
Gabriel
 
P

Peter Otten

Gabriel said:
Hello everyone,

I originally posted this on the Twisted mailing list, but now it seams
to be a more general python/environment problem. If I run the attached
example in Eclipse, it works, if I run it from a terminal, it doesn't, I
get :

$ python xml_parser_test.py
Traceback (most recent call last):
File "xml_parser_test.py", line 30, in <module>
res = rawXmlToElement("<t>reçu</t>")
File "xml_parser_test.py", line 21, in __call__
tmp.addRawXml(s)
File "/usr/lib/python2.5/site-packages/twisted/words/xish/domish.py",
line 538, in addRawXml
self.children.append(SerializedXML(rawxmlstring))
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 5:
ordinal not in range(128)

Does anyone understand why it doesn't work outside of Eclipse? My OS is
Linux (Ubuntu 8.04).

On the contrary, I don't understand why it would work in Eclipse ;)

addRawXml(s) seems to be a fancy way to create a unicode string, and
unicode(s) will work either if s is a bytestring that doesn't contain any
non-ascii characters or if s is a unicode string (at least these are the
relevant cases here).

Try changing your program to use a unicode literal:

# -*- coding: utf-8 -*-
....
if ...
res = rawXmlToElement(u"<t>reçu</t>")

Peter
 
G

Gabriel Rossetti

Peter said:
Gabriel Rossetti wrote:



On the contrary, I don't understand why it would work in Eclipse ;)

addRawXml(s) seems to be a fancy way to create a unicode string, and
unicode(s) will work either if s is a bytestring that doesn't contain any
non-ascii characters or if s is a unicode string (at least these are the
relevant cases here).

Try changing your program to use a unicode literal:

# -*- coding: utf-8 -*-
...
if ...
res = rawXmlToElement(u"<t>reçu</t>")

Peter
Hello Peter, that works, thanks! I was sure I had tried that at some
point, but I must have had another problem that made me remove it. Thank
you again!
Gabriel
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,969
Messages
2,570,161
Members
46,710
Latest member
bernietqt

Latest Threads

Top