我使用manage.py dumpdata --format xml --some-more-parameters
将数据库的完整转储导出到xml。数据库是MS SQL服务器,我使用pyodbc作为驱动程序。 dumpdata命令使用PowerShell运行,并且由于Django 1.7不支持dumpdata
命令的参数--output
,所以我使用PowerShell将输出重定向到文件中。在Windows上的Django 1.7 dumpdata加扰unicode字符
不幸的是,数据库包含unicode字符(例如country \ xd6sterreich),并且这些字符在输出文件中被加扰。
这里是没有工作:
./manage.py dumpdata --format xml > export.xml
./manage.py dumpdata --format xml | out-file -encoding utf8 export.xml
./manage.py dumpdata -format xml | out-file -encoding ANY_OTHER_SUPPORTED_ENCODING export.xml
这些命令都没有工作。变音和重音是混乱的,另外> export.xml
方法增加了一个无效的BOM
到文件,当我尝试在另一个主机上导入时,这将导致./manage.py loaddata export.xml
与UnicodeDecode错误信息中止。
关于如何导出数据并保留特殊字符的任何建议?使用json或yaml序列化程序时存在同样的问题。
这个问题的答案!见下文。似乎我需要等待2天才能接受我自己的答案... – Flurin
我在想,如果启动进程python.exe -passthru -argumentlist $ params'能够让你的Powershell脚本访问未经更改的stdout,如果有的话,你可以通过'-redirectstandardoutput'将字符串转换为标准输出。 – Vesper
谢谢。我将在下次访问服务器时尝试一下。 – Flurin