Python django反序列化尝试将输入编码为ascii?

Python django反序列化尝试将输入编码为ascii?,python,xml,django,unicode,python-unicode,Python,Xml,Django,Unicode,Python Unicode,守则: >>> from django.core import serializers >>> objects = serializers.deserialize('xml', fixturestr) >>> o = next(objects) Traceback (most recent call last): File "<console>", line 1, in <module> File "/home

守则:

>>> from django.core import serializers
>>> objects = serializers.deserialize('xml', fixturestr)
>>> o = next(objects)
Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "/home/marcintustin/oneclickrep/oneclickcosvirt/lib/python2.7/site-packages/django/core/serializers/xml_serializer.py", line 156, in next
    for event, node in self.event_stream:
  File "/usr/lib/python2.7/xml/dom/pulldom.py", line 232, in next
    rc = self.getEvent()
  File "/usr/lib/python2.7/xml/dom/pulldom.py", line 265, in getEvent
    self.parser.feed(buf)
  File "/usr/lib/python2.7/xml/sax/expatreader.py", line 210, in feed
    self._parser.Parse(data, isFinal)
UnicodeEncodeError: 'ascii' codec can't encode character u'\xc5' in position 565: ordinal not in range(128)
来自django.core导入序列化程序的
>
>>>objects=序列化程序。反序列化('xml',fixturestr)
>>>o=下一个(对象)
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“/home/marcintustin/oneclickrep/oneclickcosvirt/lib/python2.7/site packages/django/core/serializers/xml_serializer.py”,下一页第156行
对于事件,self.event_流中的节点:
文件“/usr/lib/python2.7/xml/dom/pulldom.py”,第232行,下一页
rc=self.getEvent()
getEvent中的文件“/usr/lib/python2.7/xml/dom/pulldom.py”,第265行
self.parser.feed(buf)
文件“/usr/lib/python2.7/xml/sax/expatreader.py”,第210行,在提要中
self.\u parser.Parse(数据,isFinal)
UnicodeEncodeError:“ascii”编解码器无法对565位置的字符u'\xc5'进行编码:序号不在范围内(128)

fixturestr
是一个unicode对象。消除非ascii字符不是一个选项。如何阻止反序列化程序执行此操作

尝试使用以下命令将unicode对象转换为字符串:


似乎如果传递一个unicode对象,反序列化程序将在某个地方尝试将其编码为unicode。为了避免这种情况,必须向其传递bytestring:

objects = serializers.deserialize('xml', fixturestr.encode('utf8'))

你的文件顶部有
#encoding=utf8
吗?@GamesBrainiac(1)这是在控制台(2)控制台编码是utf-8(3),据我所知,它与问题无关。谢谢,这是我发现的,尽管我认为没有必要猜测编码。我完全知道那是什么。
objects = serializers.deserialize('xml', fixturestr.encode('utf8'))