summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcel Hellkamp <marc@gsites.de>2019-06-20 12:46:23 +0200
committerMarcel Hellkamp <marc@gsites.de>2019-06-20 12:46:49 +0200
commit4e96226db168e523030fde518caebd744952f8a5 (patch)
tree0aa4a6281b1f3deb86958622d319286cdd67e597
parent246c1f6d820cf5043695d39b58b09671f3f10b3a (diff)
downloadbottle-4e96226db168e523030fde518caebd744952f8a5.tar.gz
fix #1148: redirect() and non-ascii characters
Backported from master
-rw-r--r--bottle.py8
1 files changed, 5 insertions, 3 deletions
diff --git a/bottle.py b/bottle.py
index 5887109..3c83650 100644
--- a/bottle.py
+++ b/bottle.py
@@ -1557,7 +1557,7 @@ class BaseResponse(object):
@property
def headerlist(self):
- ''' WSGI conform list of (header, value) tuples. '''
+ """ WSGI conform list of (header, value) tuples. """
out = []
headers = list(self._headers.items())
if 'Content-Type' not in self._headers:
@@ -1565,10 +1565,12 @@ class BaseResponse(object):
if self._status_code in self.bad_headers:
bad_headers = self.bad_headers[self._status_code]
headers = [h for h in headers if h[0] not in bad_headers]
- out += [(name, val) for name, vals in headers for val in vals]
+ out += [(name, val) for (name, vals) in headers for val in vals]
if self._cookies:
for c in self._cookies.values():
- out.append(('Set-Cookie', c.OutputString()))
+ out.append(('Set-Cookie', _hval(c.OutputString())))
+ if py3k:
+ out = [(k, v.encode('utf8').decode('latin1')) for (k, v) in out]
return out
content_type = HeaderProperty('Content-Type')