New submission from Ulrich Seidl :
The following code leads to an UnicodeError in python 2.7 while it works fine
in 2.6 & 2.5:
# -*- coding: latin-1 -*-
import xml.etree.cElementTree as ElementTree
oDoc = ElementTree.fromstring(
'' )
oDoc.set( "ATTR", "ÄÖÜ&
Ulrich Seidl added the comment:
Of course, if you use an unicode string it works and of course it would be easy
to switch to unicode for this demo code. Unfortunately, the affected
application is a little bit more complex and it is not that easy to switch to
unicode. I just wonder why the
Ulrich Seidl added the comment:
Well, the output of the print is not that interesting as long as ElementTree is
able the restore the former attributes value when reading it in again. The
print was just used to illustrate that an UnicodeDecodeError appears. Think
about doing an
Ulrich Seidl added the comment:
I would suggest adding an additional except branch to (at least) the following
functions of ElementTree.py:
* _encode,
* _escape_attrib, and
* _escape_cdata
The except branch could look like:
except (UnicodeDecodeError):
return text.decode( encoding
Ulrich Seidl added the comment:
The change set committed for 2.7 introduces another problem. At the beginning
of xmlrpclib.py, there is an explicit test for the availability of unicode:
try:
unicode
except NameError:
unicode = None # unicode support not available
In case unicode was