如何修复Django导出Fixture时西里尔字符编码异常问题?
解决Django dumpdata导出西里尔字符编码异常问题
执行python manage.py dumpdata goods.Categories > fixtures/goods/carts.json时,含俄语(西里尔字符)的字段出现编码异常,对应模型代码:
class Categories(models.Model): name = models.CharField(max_length=150, unique=True, verbose_name="Название")
以下是几个直接有效的解决方法:
用
dumpdata自带的--output参数替代终端重定向符号>,避免终端默认编码干扰:python manage.py dumpdata goods.Categories --output fixtures/goods/carts.json若必须使用重定向,先强制终端输出编码为UTF-8:
- Linux/macOS终端先执行:
再运行dumpdata命令export PYTHONIOENCODING=utf-8 - Windows CMD先执行:
再运行dumpdata命令chcp 65001 set PYTHONIOENCODING=utf-8
- Linux/macOS终端先执行:
确认项目数据库编码配置正确,在
settings.py中添加或修改数据库OPTIONS:DATABASES = { 'default': { # 其他数据库配置(ENGINE, NAME等) 'OPTIONS': { 'charset': 'utf8mb4', }, } }
内容的提问来源于stack exchange,提问作者wicki77
相关产品推荐
相关产品推荐

