问题描述
我正在使用此命令转储数据
py -Xutf8 manage.py dumpdata app.ModelName --indent 4 --format=json --output app/fixtures/data.json
效果很好。 但是,当我尝试在脚本中运行命令时
management.call_command(
"dumpdata",indent=4,format="json",output=os.path.join(path,"app//fixtures//data.json"),verbosity=1,)
它以这个错误结束:
django.core.management.base.CommandError: Unable to serialize database: 'charmap' codec can't encode characters in position 1-2: character maps to <undefined>
我已经尝试过类似 this 的方法,但它仍然不起作用。有什么解决办法吗?
解决方法
在十六进制编辑器中查看它(免费的可在线获得,或使用 Linux vim 等)并确保 MSb 为 0。“智能引号”(左右倾斜,0x93)特别出现在自动在 Microsoft 的东西中(记事本不会删除这些字符)。仅使用 ASCII(UTF-8 的子集——此处编码表中的第一行:https://en.wikipedia.org/wiki/UTF-8#Encoding(另请注意,并非所有位模式都是合法的))。
这也可能有帮助,但它超出了我们在这里讨论的范围: https://www.charset.org/charsets/iso-8859-1