Python/Django编码问题

Python/Django编码问题,python,django,ascii,encode,utf,Python,Django,Ascii,Encode,Utf,我有一个让我发疯的问题 我想建立一个django日历应用程序。我创建了一个网站,在那里我可以上传ics文件,为日历提供事件。重点应该是处理上传的方法。在这里,我保存上传的文件,并希望使用iCalendar(python模块)解析其内容。阅读内容后,我想将ics文件中的事件转换为我可以保存在数据库中的事件。当我想保存模块e.save()时发生错误。。。德国umlauteöääß等存在问题。。。 正如你所看到的,我已经尝试用utf-8对摘要进行编码,但仍然遇到问题。。。还有想法 谢谢 我的表格: c

我有一个让我发疯的问题

我想建立一个django日历应用程序。我创建了一个网站,在那里我可以上传ics文件,为日历提供事件。重点应该是处理上传的方法。在这里,我保存上传的文件,并希望使用iCalendar(python模块)解析其内容。阅读内容后,我想将ics文件中的事件转换为我可以保存在数据库中的事件。当我想保存模块e.save()时发生错误。。。德国umlauteöääß等存在问题。。。 正如你所看到的,我已经尝试用utf-8对摘要进行编码,但仍然遇到问题。。。还有想法

谢谢

我的表格:

class UploadFileForm(forms.Form):
file = forms.FileField()
我的模型

class Event(models.Model):
 title = models.CharField(max_length=255)
 start = models.DateTimeField()
 end = models.DateTimeField()
 url = models.CharField(max_length=255)
我的看法

if request.method == 'POST':
    form = UploadFileForm(request.POST, request.FILES)
    if form.is_valid():
        handle_upload(request)
        return HttpResponseRedirect(reverse("app:site"))
else:
    form = UploadFileForm()

return TemplateResponse(
    request,
    'app/site.html',
    {'form' : form},
)
我处理上传的方法

fname = request.FILES['file'].name
f = request.FILES['file']

with open('app/media/import/%s' % fname, 'wb+') as destination:
    for chunk in f.chunks():
        destination.write(chunk)

g = open('app/media/import/%s' % fname, 'rb')

cal = Calendar.from_ical(g.read())

for event in cal.walk('vevent'):
    title = str(event.get('summary')).encode('utf-8')
    start = format_date(event.get('dtstart').to_ical())
    end = format_date(event.get('dtend').to_ical())

    e = Event(title=title, start=start, end=end)
    e.save() 
错误

Environment:
Request Method: POST
Request URL: domain:8000/site/source/

Django Version: 1.6.7
Python Version: 2.7.6
Installed Applications:
('django.contrib.admin',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'myApp')
Installed Middleware:
('django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.common.CommonMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'django.middleware.clickjacking.XFrameOptionsMiddleware')


Traceback:
File "/usr/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response
  112.                     response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/home/user/mySite/myApp/views.py" in source
  24.             handle_upload(request)
File "/home/user/mySite/myApp/utils.py" in handle_upload
  20.         title = str(event.get('summary')).encode('utf-8')

Exception Type: UnicodeEncodeError at /calendar/source/
Exception Value: 'ascii' codec can't encode character u'\xdf' in position 3: ordinal not in range(128)
您不应该使用str(),因为它是ascii错误的来源。 只需使用编码。或者使用unicode而不是str–Vajk Hermecz


错误发生在哪里?显示完整的回溯。不应使用str(),因为它是ascii错误的来源。只需使用编码。或者使用unicode而不是strVajk。。。谢谢你的帮助。。。现在,如果你把你的答案作为一个答案而不是评论,我可以给你打分,谢谢