Python 3.15 enables UTF-8 mode by default for text encoding operations.
How It Works
This reduces environment-dependent behavior when code opens a text file without specifying encoding. For predictable file formats and data exchange, it remains good practice to pass encoding="utf-8" explicitly. Binary streams are not text and require different handling.
Example
from pathlib import Path
report_path = Path("sample-report.txt")
report_path.write_text("Café", encoding="utf-8")
print(report_path.read_text(encoding="utf-8"))
The program writes a Unicode word to a UTF-8 file and reads it back.
Expected Output
Café
Important Notes
Text written under legacy environments may use other encodings; identify the real encoding before decoding old files.
Try It Yourself
Write a test file containing several Unicode characters and reopen it explicitly as UTF-8.
Common Beginner Mistakes
- Text written under legacy environments may use other encodings; identify the real encoding before decoding old files.
- Believing Python 3.15's UTF-8 default can correctly decode files written in every legacy encoding.
- Omitting encoding= in file formats that must behave consistently across other Python versions.
Key Takeaways
- Python 3.15 enables UTF-8 mode by default for text encoding operations.
- This reduces environment-dependent behavior when code opens a text file without specifying encoding.
- UTF-8 is the new default mode, but explicit encoding keeps data contracts clear.