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

Django导出JSON遇UnicodeDecodeError,俄文字符无法识别求助

解决Django dumpdata俄文乱码与loaddata解码错误问题

针对你遇到的问题,直接给出可行解决方案:

方案1:使用Django原生参数导出(推荐)

不要用命令行的>重定向,改用dumpdata自带的--output参数,Django会自动以UTF-8编码生成文件,彻底规避编码不匹配问题:

python manage.py dumpdata products.ProductCategory --output category.json

方案2:强制命令行使用UTF-8编码(适用于必须用重定向的场景)

如果你的环境是Windows,默认命令行编码为GBK,会导致UTF-8输出被转码乱码。先执行命令切换编码:

chcp 65001

再执行原重定向命令:

python manage.py dumpdata products.ProductCategory > category.json

修复已生成的乱码文件

如果已经有了乱码的category.json,可以用VS Code、Notepad++等编辑器打开,选择**编码为UTF-8(无BOM)**后重新保存,再执行loaddata即可。

问题原因

  • 命令行重定向会使用系统默认编码(Windows下多为GBK),而Django的dumpdata默认输出UTF-8编码内容,两者不匹配导致俄文乱码。
  • 报错里的0xff是UTF-16 BOM的起始字节,说明你的乱码文件被存成了UTF-16编码,但loaddata默认以UTF-8读取,因此触发解码错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 22:55:19