Python/environment problem with char encoding/decoding

Gabriel Rossetti gabriel.rossetti at arimaz.com
Wed Feb 18 09:24:35 EST 2009


Peter Otten wrote:
> Gabriel Rossetti wrote:
>
>   
>> 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
> --
>
>   
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



More information about the Python-list mailing list