diff --git a/sendfile/__init__.py b/sendfile/__init__.py index 1cc9809..1c1d4c7 100644 --- a/sendfile/__init__.py +++ b/sendfile/__init__.py @@ -2,6 +2,7 @@ __version__ = '.'.join(map(str, VERSION)) import os.path +import sys from mimetypes import guess_type import unicodedata @@ -78,6 +79,9 @@ def sendfile(request, filename, attachment=False, attachment_filename=None, mime from django.utils.encoding import force_unicode as force_text attachment_filename = force_text(attachment_filename) ascii_filename = unicodedata.normalize('NFKD', attachment_filename).encode('ascii','ignore') + if sys.version_info[0] >= 3: + # We want ascii_filename as a unicode string, since it will be formatted into parts + ascii_filename = ascii_filename.decode('ascii') parts.append('filename="%s"' % ascii_filename) if ascii_filename != attachment_filename: from django.utils.http import urlquote