Django仅在命令lin上获取编码错误

2024-05-16 02:44:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个脚本,可以读取XML文件并将其写入数据库。
当我通过浏览器运行它时(通过视图调用它),它可以正常工作,但是
当我为它创建一个命令(./manage.py importxmlfile)时,我得到以下消息:

UnicodeEncodeError: 'ascii' codec can't encode character u'\xfc' in position 6: ordinal not in range(128)

我不知道为什么只有在通过命令行调用import时才会发生。。有什么想法吗?在

更新
我试图将lxml.etree._ElementUnicodeResult对象转换为字符串,并使用str(result)将其保存在DB(utf8排序规则)中。
这只会在命令行上产生上面提到的错误。在


Tags: 文件命令行inpy命令脚本视图数据库
1条回答
网友
1楼 · 发布于 2024-05-16 02:44:44

啊,别用str(result)。在

相反,请执行以下操作:

result.encode('utf-8')

当您调用str(result)时,python将使用默认的系统编码(通常是ascii)来尝试对result中的字节进行编码。如果ordinal not in range(128),这将中断。不要使用ascii编解码器,只需.encode()并告诉python要使用哪个编解码器。在

查看Python Unicode HowTo了解更多信息。您可能还想查看这个主题的this related questionthis excellent presentation。在

相关问题 更多 >