diff --git Lib/test/test_xml_etree.py Lib/test/test_xml_etree.py index 895902f..a7ad48b 100644 --- Lib/test/test_xml_etree.py +++ Lib/test/test_xml_etree.py @@ -210,6 +210,17 @@ def check_encoding(ET, encoding): """ ET.XML("" % encoding) +def check_issue6233(): + """ + >>> from xml.etree import ElementTree as ET + + >>> e = ET.XML("t\xe3g") + >>> ET.tostring(e, 'ascii') + b"\\ntãg" + >>> e = ET.XML("t\xe3g".encode('iso-8859-1')) # create byte string with the right encoding + >>> ET.tostring(e, 'ascii') + b"\\ntãg" + """ # # xinclude tests (samples from appendix C of the xinclude specification) diff --git Lib/xml/etree/ElementTree.py Lib/xml/etree/ElementTree.py index cfac4f7..fd6644e 100644 --- Lib/xml/etree/ElementTree.py +++ Lib/xml/etree/ElementTree.py @@ -742,7 +742,7 @@ def dump(elem): def _encode(s, encoding): if encoding: - return s.encode(encoding) + return s.encode(encoding, 'xmlcharrefreplace') else: return s