Python 3.15 has been released after a week's delay, bringing default UTF-8 support to all platforms. The change is particularly significant for Windows users, who previously had to work around the host system's locale encoding when processing data files.
Earlier Python versions defaulted to the host system's locale encoding, meaning Windows scripts that opened UTF-8-encoded data could corrupt or crash on non-ASCII characters such as smart quotes or fancy apostrophes. The update aligns Python with other languages and runtimes that already default to UTF-8, including Java, Ruby, Rust, Go, and Node.js.
The release also includes other features: a proper profiler, an experimental just-in-time compiler, tighter dictionary structures, and a Lazy Import option. The Lazy Import implementation caused the one-week delay due to last-minute regressions, according to The Register.