Yes. Code out there is not ready to simply flip over to UTF-8 by default overnight. And this could lead to very odd data issues if you’re reading something in a different encoding that happens to be compatible enough with UTF-8. There’s simply enough (dark) code out there that we didn’t feel comfortable making the swap in 2 years.
Somewhat. With enough notice there is hopefully enough time for people to prepare for this switch.
Yes it is. We want a full EOL support cycle from 3.11 to give people a chance to switch as a bunch of key support for locale/today’s semantics are going to be in Python 3.11. And so the SC said we would accept the PEP if people got a long lead time to transition.