UnicodeEncodeError:'ascii'编解码器无法对位置4中的字符u'\ xa0'进行编码:序数不在范围内(128)

时间:2018-01-31 02:29:08

标签: python django unicode python-2.x

我在使用Unicode方面遇到了一些麻烦。我是编程的初学者,所以我无法理解这个问题的其他答案。

回溯

Traceback:
File "/usr/lib/python2.7/dist-packages/django/core/handlers/base.py" in get_response
  132.                     response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/home/django/django_project/learn/views.py" in index
  19.         if str(get_one_phrasalverb) not in cannot_be_random:

Exception Type: UnicodeEncodeError at /learn/keep-from/
Exception Value: 'ascii' codec can't encode character u'\xa0' in position 4: ordinal not in range(128)

有问题的代码部分

cannot_be_random = request.session.get('cannot_be_random')

if str(get_one_phrasalverb) not in cannot_be_random:
     cannot_be_random.append(str(get_one_phrasalverb))
     request.session['cannot_be_random'] = cannot_be_random

请告诉我代码的某些部分或部分回溯是否缺失。

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:2)

问题出在str(get_one_phrasalverb)内。该错误表示get_one_phrasalverb无法使用str编码转换为ascii

因此,您需要首先了解get_one_phrasalverb的编码,如果编码为utf8,您可以使用get_one_phrasalverb.encode('utf8')代替str(get_one_phrasalverb)