统一使用UTF-8编码是最稳妥的跨平台方案:1. 源码首行声明# -- coding: utf-8 --;2. open()显式指定encoding='utf-8';3. 第三方模块(CSV/JSON/ConfigParser)配套UTF-8文件对象;4. IDE编辑器同步设为UTF-8。
Python文件默认编码在不同系统上可能不一致(Windows常用GBK,Linux/macOS默认UTF-8),容易导致读写中文时出现UnicodeDecodeError或乱码。统一强制使用UTF-8编码是最稳妥的跨平台方案。
在Python脚本第一行或第二行添加编码声明,告诉解释器该文件用UTF-8保存:
避免依赖系统默认编码,所有open()操作都应明确传入encoding参数:
with open('data.txt', 'r', encoding='utf-8') as f:
with open('out.log', 'w', encoding='utf-8') as f:
with open('log.txt', 'a', encoding='utf-8') as f:
encoding='utf-8-sig'自动跳过BOM标准库模块也需注意编码设置:
csv.reader/writer:必须通过open()以UTF-8打开文件后传入,不能直接给字符串路径json.load()和json.loads():前者需UTF-8打开的文件对象;后者只接
受字符串,确保字符串本身是合法Unicodeconfigparser.ConfigParser():读取.ini文件时,用read_file(f, encoding='utf-8')或先用UTF-8打开再传入编码统一不仅是代码逻辑问题,还需编辑器配合:
file -i filename.py或Python中chardet检测)不复杂但容易忽略。坚持这四点,基本能覆盖99%的跨平台编码问题。