Django项目用python-dotenv加载.env时遇Unicode解码错误怎么解决?
解决Django项目中.env文件引发的UnicodeDecodeError问题
1. 修复.env文件的编码格式
- 用记事本打开.env文件,点击「文件」→「另存为」,编码选「UTF-8」(别选带BOM的UTF-8),覆盖原文件。
- 或者用VS Code打开,看右下角的编码标识,点击后选择「通过编码保存」,选「UTF-8」(无BOM)格式。
2. 加载.env时显式指定编码
在settings.py里加载环境变量时,给load_dotenv加上编码参数,兼容带BOM的文件:
from dotenv import load_dotenv import os # 指定编码为utf-8-sig处理带BOM的UTF-8文件 load_dotenv(encoding='utf-8-sig') # 读取变量时记得去掉单引号 SECRET_KEY = os.getenv('SECRET_KEY').strip("'") # 把字符串转成布尔值,避免DEBUG判断出错 DEBUG = os.getenv('DEBUG').strip("'") == 'True'
3. 重新生成纯UTF-8的.env文件
直接在Powershell里用命令创建,确保编码正确:
@" SECRET_KEY='你的密钥内容' DEBUG='False' "@ | Out-File -FilePath .env -Encoding utf8
4. 降级python-dotenv版本试试
1.0.0版本的编码处理可能有问题,降级到0.21.0版本:
pip uninstall python-dotenv -y pip install python-dotenv==0.21.0
内容的提问来源于stack exchange,提问作者binny
相关产品推荐
相关产品推荐

