【发布时间】:2021-07-20 04:57:45
【问题描述】:
我正在为 python 使用 Powershell 和 django web 框架。这个 Web 框架有一个实用程序,用于从您的数据库python manage.py dumpdata 转储数据。当您调用此命令时,您将通过 stdout 获得所有序列化为 json 的数据库条目(此输出没有问题,一切正常):
[
{
"model": "user.user",
"pk": "007a0078-f538-4c01-9a77-694cdd6b142f",
"fields": {
"name": "César"
}
},
...
]
因此您可以轻松地使用重定向运算符> 并将输出放入文件python manage.py dumpdata > myfile.json。
我的问题是在这样做之后(将输出重定向到文件),如果我有带有拉丁口音的字母,它们会被替换为奇怪的字符:
{
"model": "user.user",
"pk": "fa35df0c-5ce4-4ff0-a4c6-ee25e32930e7",
"fields": {
"name": "C¾sar"
}
},
我还尝试将 powershell 和 python sys stdin 和 out 编码设置为 utf-8
-python manage.py dumpdata | out-file myfile.json -encoding utf8
-import sys; sys.stdout.reconfigure(encoding='utf-8')
但仍然面临同样的问题。
【问题讨论】:
-
您好,我已经用更具描述性的信息更新了我的问题。另外我已经尝试过这种解决方案,甚至 powershell 都说它的编码是 UTF-8。
-
可悲的是我根本不懂python。
标签: python django windows powershell