# HG changeset patch # User RĂ©mi Cardona # Date 1444676805 -7200 # Node ID 9f66ac5eec1ebaa3287dcc58cc76797a2ce4fef9 # Parent 6231587fcfc5623c52eb73de69840efb9033e962 [py3k] http headers should be ascii-only unicode objects diff -r 6231587fcfc5 -r 9f66ac5eec1e web/request.py --- a/web/request.py Tue Oct 13 18:20:42 2015 +0200 +++ b/web/request.py Mon Oct 12 21:06:45 2015 +0200 @@ -28,7 +28,7 @@ from warnings import warn from io import BytesIO -from six import PY2, text_type, string_types +from six import PY2, binary_type, text_type, string_types from six.moves import http_client from six.moves.urllib.parse import urlsplit, quote as urlquote from six.moves.http_cookies import SimpleCookie @@ -571,11 +571,11 @@ header = [disposition] unicode_filename = None try: - ascii_filename = filename.encode('ascii') + ascii_filename = filename.encode('ascii').decode('ascii') except UnicodeEncodeError: # fallback filename for very old browser unicode_filename = filename - ascii_filename = filename.encode('ascii', 'ignore') + ascii_filename = filename.encode('ascii', 'ignore').decode('ascii') # escape " and \ # see http://greenbytes.de/tech/tc2231/#attwithfilenameandextparamescaped ascii_filename = ascii_filename.replace('\x5c', r'\\').replace('"', r'\"')