Python 3.15 稳定版发布:默认编码改为 UTF-8,升级前先看这几个坑

Python 3.15 稳定版已经发布。这一版最容易被忽略、但影响面最广的变化是:默认使用 UTF-8 编码(对应 PEP 686 的落地)。

改了什么

以前在 Windows 上,open("a.txt") 的默认编码是本地区域编码(比如 GBK),Linux/macOS 上则是 UTF-8。平台不一致导致的中文乱码、脚本「在我电脑上跑得好好的」问题,折磨了很多人。

从 3.15 开始,默认编码统一为 UTF-8,前提是没有显式指定 encoding。

升级要检查什么

  1. 显式写 encoding:所有读写文件的代码,建议都加上 encoding="utf-8",这是最稳的做法
  2. 旧数据文件:用 GBK 保存的老文件,升级后直接读会报错,需要手动指定编码
  3. 环境变量:可用 PYTHONUTF8=0 临时关闭,但不建议长期依赖
  4. 依赖库:部分老库内部写死了编码假设,升级前先在测试环境跑一遍

顺带一提

这类「默认值变更」是 Python 近年一贯的路线:牺牲一点兼容性,换长期的统一性。对老项目来说,最省事的方案是锁版本(用 venv 或容器固定小版本),新项目则直接按新默认写。

生产环境的建议:不要在生产机上演升级,先在隔离环境验证一周再切。

© 版权声明
THE END
喜欢就支持一下吧
点赞25 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容