diff options
author | Marcel Hellkamp <marc@gsites.de> | 2019-06-20 12:46:23 +0200 |
---|---|---|
committer | Marcel Hellkamp <marc@gsites.de> | 2019-06-20 12:46:49 +0200 |
commit | 4e96226db168e523030fde518caebd744952f8a5 (patch) | |
tree | 0aa4a6281b1f3deb86958622d319286cdd67e597 | |
parent | 246c1f6d820cf5043695d39b58b09671f3f10b3a (diff) | |
download | bottle-4e96226db168e523030fde518caebd744952f8a5.tar.gz |
fix #1148: redirect() and non-ascii characters
Backported from master
-rw-r--r-- | bottle.py | 8 |
1 files changed, 5 insertions, 3 deletions
@@ -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') |