You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

启动Flask服务器时遭遇UnicodeDecodeError错误求助

Flask启动报错:UnicodeDecodeError 解决方法

启动最简Flask代码时触发以下错误:

UnicodeDecodeError: 'utf-8' codec can't decode byte 0x99 in position 0: invalid start byte

使用的代码:

from flask import Flask
app = Flask(__name__)
app.run(debug=True, port=5000)

报错原因

从堆栈信息可以看出,问题出在Flask自动加载.env环境变量文件时——Flask默认用UTF-8编码读取该文件,但你的.env文件实际是其他编码格式(比如Windows-1252、GBK等),导致解码失败。

解决方法

1. 删除或转换.env文件编码

  • 不需要.env文件:直接删除当前目录下的.env文件,重新启动Flask即可。
  • 需要保留.env文件:将文件编码转换为UTF-8:
    • Linux/macOS终端执行:
      # 假设原编码是Windows-1252,可根据实际情况调整
      iconv -f windows-1252 -t utf-8 .env > .env.utf8 && mv .env.utf8 .env
      
    • Windows系统:用记事本打开.env,点击「文件」→「另存为」,编码选择「UTF-8」后覆盖原文件。

2. 手动指定.env文件编码加载

在代码中手动调用load_dotenv并指定正确编码:

from flask import Flask
from dotenv import load_dotenv

# 替换为你的.env文件实际编码,比如windows-1252、gbk等
load_dotenv(encoding='windows-1252')
app = Flask(__name__)
app.run(debug=True, port=5000)

3. 禁用Flask自动加载dotenv

如果不需要加载任何.env文件,通过环境变量跳过自动加载:

  • Linux/macOS:
    export FLASK_SKIP_DOTENV=1 && python your_app.py
    
  • Windows(cmd):
    set FLASK_SKIP_DOTENV=1 && python your_app.py
    
  • Windows(PowerShell):
    $env:FLASK_SKIP_DOTENV=1; python your_app.py
    

验证

执行上述任一操作后,重新启动Flask服务器,确认错误消失。

内容的提问来源于stack exchange,提问作者Danwand N S

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 16:25:24