Message165020
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>€</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. |
|
Date |
User |
Action |
Args |
2012-07-08 15:31:04 | serhiy.storchaka | set | recipients:
+ serhiy.storchaka, ezio.melotti |
2012-07-08 15:31:04 | serhiy.storchaka | set | messageid: <1341761464.17.0.485570736364.issue15296@psf.upfronthosting.co.za> |
2012-07-08 15:31:03 | serhiy.storchaka | link | issue15296 messages |
2012-07-08 15:31:03 | serhiy.storchaka | create | |
|