Of course, they can use “mbcs” or “cpNNNN” explicitly.
We can agree that changing the default eventually. So the problem “when inconvenience using legacy encoding by default become larger than inconvenience using UTF-8”?
I think it’s now. And inconvenience using codepage will be bigger quickly, because MS will use cp65001 more often.
Currently, Python changes encoding when user changed language setting.
But when Python 3.9 is released, codepage may be changed by how Python is started, or how Python is installed.
So I think it’s time to show warning when people use default encoding and it is not UTF-8, like “Python 3.9 will use UTF-8 for default encoding of text files. Use ‘mbcs’ if you want to use current codepage”.
If we decide to not change it in 3.9, we can just rewrite the warning message from 3.9 to 3.10.
I think so. It’s common mistake that assume default encoding is ‘UTF-8’.
There are some packages on PyPI which does
long_description=open("README.md").read()) while README.md is UTF-8.
Not using UTF-8 by default is big pitfall even for now, and it will be bigger when most people start using UTF-8 even on Windows.