统一使用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编码是最稳妥的跨平台方案。
源代码文件声明UTF-8编码
在Python脚本第一行或第二行添加编码声明,告诉解释器该文件用UTF-8保存:
- # -*- coding: utf-8 -*-(推荐,兼容性强)
- # coding=utf-8(简洁写法,效果相同)
- 现代Python 3.15+已默认按UTF-8解析源码,但显式声明仍建议保留,尤其团队协作或旧环境兼容时
文件读写显式指定encoding='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: - 若需处理可能含BOM的UTF-8文件,可用
encoding='utf-8-sig'自动跳过BOM
处理第三方数据(CSV、JSON、配置文件)
标准库模块也需注意编码设置:
ECTouch是上海商创网络科技有限公司推出的一套基于 PHP 和 MySQL 数据库构建的开源且易于使用的移动商城网店系统!应用于各种服务器平台的高效、快速和易于管理的网店解决方案,采用稳定的MVC框架开发,完美对接ecshop系统与模板堂众多模板,为中小企业提供最佳的移动电商解决方案。ECTouch程序源代码完全无加密。安装时只需将已集成的文件夹放进指定位置,通过浏览器访问一键安装,无需对已有
立即学习“Python免费学习笔记(深入)”;
-
csv.reader/writer:必须通过open()以UTF-8打开文件后传入,不能直接给字符串路径 -
json.load()和json.loads():前者需UTF-8打开的文件对象;后者只接受字符串,确保字符串本身是合法Unicode -
configparser.ConfigParser():读取.ini文件时,用read_file(f, encoding='utf-8')或先用UTF-8打开再传入
IDE与编辑器同步设置
编码统一不仅是代码逻辑问题,还需编辑器配合:
- VS Code:右下角点击编码(如“UTF-8”),选“Save with Encoding” → “UTF-8”
- PyCharm:File → Settings → Editor → File Encodings → 全局设为UTF-8,勾选“Transparent native-to-ascii conversion”(可选)
- Sublime Text:File → Save with Encoding → UTF-8
- 保存前确认文件实际编码(可用
file -i filename.py或Python中chardet检测)
不复杂但容易忽略。坚持这四点,基本能覆盖99%的跨平台编码问题。









