TGViewer
Zen of Python Zen of Python @zen_of_python · 18.8K subscribers
Post #5072 458
UTF-8 по умолчанию не перекодирует старые файлы

В Python 3.15 текстовый ввод-вывод по умолчанию использует UTF-8. Это убирает часть различий между платформами, но файл в CP1251 остаётся файлом в CP1251.

В руководстве по переходу предлагают сначала найти операции с неявной кодировкой:

python -X warn_default_encoding app.py


Предупреждения покажут выполненные вызовы, где кодировка не указана. Для остальных путей пригодится статическая проверка.

Указывайте encoding="utf-8" для UTF-8 и encoding="cp1251" для известных старых файлов. Если нужна именно кодировка локали пользователя, используйте encoding="locale".

Не добавляйте errors="ignore" ради исчезновения ошибки: так можно незаметно потерять символы. Перед обновлением проверьте реальные входные файлы, включая выгрузки из старых систем.

#python #файлы
More from @zen_of_python
  1. Oct 16, 2026Что делать с данными? 💬 Строить отчёты. А ещё, например: ✅находить закономерности в больш…
  2. Oct 16, 2026Как сделать бэкап работающей SQLite через Python Просто скопировать файл активной базы рис…
  3. Oct 16, 2026Python обработал 7,6 ГБ JSON за 0,12 секунды Здесь интересно, куда уходило время. Дэниел Л…
  4. Oct 16, 2026Что проверить перед переходом на SQLAlchemy 2.1 Обновление зависимости может поменять драй…
  5. Oct 15, 2026Почему subprocess с PIPE может зависнуть Дочерний процесс пишет в stdout, родитель вызывае…
  6. Oct 15, 2026Как запустить тесты самого Django через uv Хотите исправить баг в Django? Сначала понадоби…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →