This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author serhiy.storchaka
Recipients ezio.melotti, serhiy.storchaka
Date 2012-07-08.15:31:02
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1341761464.17.0.485570736364.issue15296@psf.upfronthosting.co.za>
In-reply-to
Content
Minidom can parse ASCII-encoded XML data, but can't create it.

>>> from xml.dom.minidom import parseString
>>> doc = parseString(b'<?xml version="1.0" encoding="us-ascii"?><foo>&#x20ac;</foo>')
>>> doc.toxml('us-ascii')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/serhiy/py/cpython/Lib/xml/dom/minidom.py", line 47, in toxml
    return self.toprettyxml("", "", encoding)
  File "/home/serhiy/py/cpython/Lib/xml/dom/minidom.py", line 56, in toprettyxml
    self.writexml(writer, "", indent, newl, encoding)
  File "/home/serhiy/py/cpython/Lib/xml/dom/minidom.py", line 1798, in writexml
    node.writexml(writer, indent, addindent, newl)
  File "/home/serhiy/py/cpython/Lib/xml/dom/minidom.py", line 868, in writexml
    self.childNodes[0].writexml(writer, '', '', '')
  File "/home/serhiy/py/cpython/Lib/xml/dom/minidom.py", line 1090, in writexml
    _write_data(writer, "%s%s%s" % (indent, self.data, newl))
  File "/home/serhiy/py/cpython/Lib/xml/dom/minidom.py", line 304, in _write_data
    writer.write(data)
  File "/home/serhiy/py/cpython/Lib/codecs.py", line 355, in write
    data, consumed = self.encode(object, self.errors)
UnicodeEncodeError: 'ascii' codec can't encode character '\u20ac' in position 0: ordinal not in range(128)

Same for other non-unicode encodings.

Suggested simple patch solves this issue.
History
Date User Action Args
2012-07-08 15:31:04serhiy.storchakasetrecipients: + serhiy.storchaka, ezio.melotti
2012-07-08 15:31:04serhiy.storchakasetmessageid: <1341761464.17.0.485570736364.issue15296@psf.upfronthosting.co.za>
2012-07-08 15:31:03serhiy.storchakalinkissue15296 messages
2012-07-08 15:31:03serhiy.storchakacreate