[XML-SIG] [bug] Encoding troubles with attributes' CDATA, py1.5.2 + pyxml
0.6.6
Nicolas Chauvat
Nicolas.Chauvat@logilab.fr
Thu, 30 Aug 2001 18:09:18 +0200 (CEST)
Hi List,
With python 1.5.2 and PyXml 0.6.6, I get problems when executing the
following piece of code :
>>> s = '<?xml version="1.0" encoding="ISO-8859-1"?><d nom="Détails de la
specialité" />'
>>> d = Sax2.FromXml(s)
>>> PrettyPrint(d,encoding='iso-8859-1')
<?xml version='1.0' encoding='iso-8859-1'?>
<!DOCTYPE d>
<d nomTraceback (innermost last):
File "<stdin>", line 1, in ?
File "/usr/lib/python1.5/site-packages/xml/dom/ext/__init__.py", line
82, in PrettyPrint
Printer.PrintWalker(visitor, root).run()
File "/usr/lib/python1.5/site-packages/xml/dom/ext/Printer.py", line
384, in run
return self.step()
File "/usr/lib/python1.5/site-packages/xml/dom/ext/Printer.py", line
380, in step
self.visitor.visit(self.start_node)
File "/usr/lib/python1.5/site-packages/xml/dom/ext/Printer.py", line
186, in visit
return self.visitDocument(node)
File "/usr/lib/python1.5/site-packages/xml/dom/ext/Printer.py", line
232, in visitDocument
self.visitNodeList(node.childNodes, exclude=node.doctype)
File "/usr/lib/python1.5/site-packages/xml/dom/ext/Printer.py", line
202, in visitNodeList
curr is not exclude and self.visit(curr)
File "/usr/lib/python1.5/site-packages/xml/dom/ext/Printer.py", line
162, in visit
return self.visitElement(node)
File "/usr/lib/python1.5/site-packages/xml/dom/ext/Printer.py", line
266, in visitElement
self.visitAttr(attr)
File "/usr/lib/python1.5/site-packages/xml/dom/ext/Printer.py", line
219, in visitAttr
self._write("=%s%s%s" % (delimiter, text, delimiter))
File "/usr/lib/python1.5/site-packages/xml/dom/ext/Printer.py", line
146, in _write
obj = utf8_to_code(text, self.encoding)
File "/usr/lib/python1.5/site-packages/xml/dom/ext/Printer.py", line 65,
in utf8_to_code
text = ws.encode(encoding)
File "/usr/lib/python1.5/site-packages/xml/unicode/iso8859.py", line 81,
in encode
char, input = utf8_iso.utf8_to_code(codeset, input)
File "/usr/lib/python1.5/site-packages/xml/unicode/utf8_iso.py", line
88, in utf8_to_code
raise ConvertError("Unicode character %x not supported in
ISO-8859-%d"\
xml.unicode.utf8_iso.ConvertError: Unicode character 9d21 not supported in
ISO-8859-1
However,
>>> s = '<?xml version="1.0" encoding="ISO-8859-1"?><d>Détails de la
specialité</d>'
>>> d = Sax2.FromXml(s)
>>> PrettyPrint(d,encoding='iso-8859-1')
works fine.
Please don't tell me to drop python 1.5.2 in favor of python 2.2 (that's a
leap!), for it has to run with Zope 2.3 and Python 1.5.2... for now.
I'll look into it, but any help will be appreciated :-)
--
Nicolas Chauvat
http://www.logilab.com - "Mais où est donc Ornicar ?" - LOGILAB, Paris (France)