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

Python格式化工具Black报UTF-8解码错误,如何指定UTF-16编码?

解决Black格式化时的UnicodeDecodeError(0xd2字节问题)

从报错回溯可以明确:错误不是来自你要格式化的settings.py,而是Black在读取项目根目录的.gitignore文件时,遇到了非UTF-8编码的字节(0xd2)。这就是为什么你修改settings.py编码、加魔法头这些操作都没用——方向错了。

解决方案步骤:

  1. 验证问题根源
    把项目根目录的.gitignore文件临时重命名为.gitignore.bak,然后重新运行Black命令:

    python -m black --diff settings.py
    

    如果命令正常执行,就确认是.gitignore的编码问题。

  2. 修复.gitignore编码

    • 用Windows记事本打开原.gitignore文件
    • 点击顶部菜单「文件」→「另存为」
    • 在弹出的窗口中,将「编码」选择为「UTF-8」,覆盖原文件保存
    • 把重命名的.gitignore.bak替换为新保存的UTF-8版本
  3. 重新运行Black
    再次执行格式化命令,应该就能正常工作了。

补充说明:

  • 0xd2字节通常属于GBK/GB2312编码,说明你的.gitignore里可能有中文注释或文件名,是用GBK编码保存的。
  • Black官方只支持UTF-8编码的文件(包括配置类文件如.gitignore),没有提供切换编码的选项,所以必须确保相关文件都是UTF-8编码。
  • Ruff能正常处理是因为它对gitignore文件的编码兼容性更好,不需要严格UTF-8。

内容的提问来源于stack exchange,提问作者Dick Roman

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 16:46:13