Message412247
When ElementTree object is to be written to the file, and when BOM is needed, the 'utf-8-sig' can be used for the purpose. However, the XML prolog then looks like...
<?xml version='1.0' encoding='utf-8-sig'?>
... and that encoding in the prolog makes no sense. Therefore,
the utf-8-sig is changed to utf-8 for the purpose.
To fix the situation, the following two lines should be added to
`cpython/Lib/xml/etree/ElementTree.py`
`elif enc_lower == "utf-8-sig":
declared_encoding = "utf-8"
`
just above the line 741 that says
`write("<?xml version='1.0' encoding='%s'?>\n" % (
declared_encoding,))`
I have already cloned the main branch, added the lines to `https://github.com/pepr/cpython.git`, and sent pull request.
I have tested the functionality locally with `Python 3.10.2 (tags/v3.10.2:a58ebcc, Jan 17 2022, 14:12:15) [MSC v.1929 64 bit (AMD64)] on win32` |
|
Date |
User |
Action |
Args |
2022-02-01 11:00:34 | prikryl | set | recipients:
+ prikryl |
2022-02-01 11:00:34 | prikryl | set | messageid: <1643713234.05.0.62090035158.issue46598@roundup.psfhosted.org> |
2022-02-01 11:00:34 | prikryl | link | issue46598 messages |
2022-02-01 11:00:33 | prikryl | create | |
|