我有一个脚本,可以读取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排序规则)中。
这只会在命令行上产生上面提到的错误。在
啊,别用
str(result)
。在相反,请执行以下操作:
当您调用
str(result)
时,python将使用默认的系统编码(通常是ascii)来尝试对result
中的字节进行编码。如果ordinal not in range(128)
,这将中断。不要使用ascii编解码器,只需.encode()
并告诉python要使用哪个编解码器。在查看Python Unicode HowTo了解更多信息。您可能还想查看这个主题的this related question或this excellent presentation。在
相关问题 更多 >
编程相关推荐