diff --git a/gluon/globals.py b/gluon/globals.py index 767a9b0b..95e310c6 100644 --- a/gluon/globals.py +++ b/gluon/globals.py @@ -1167,7 +1167,7 @@ class Session(Storage): compression_level=compression_level) rcookies = response.cookies rcookies.pop(name, None) - rcookies[name] = value + rcookies[name] = value.decode('utf8') rcookies[name]['path'] = '/' expires = response.session_cookie_expires if isinstance(expires, datetime.datetime): diff --git a/gluon/utils.py b/gluon/utils.py index 3b26a51b..3b93ea18 100644 --- a/gluon/utils.py +++ b/gluon/utils.py @@ -207,6 +207,8 @@ def secure_dumps(data, encryption_key, hash_key=None, compression_level=None): def secure_loads(data, encryption_key, hash_key=None, compression_level=None): + if not isinstance(data, bytes): + data = bytes(data, 'utf8') components = data.count(b':') if components == 1: return secure_loads_deprecated(data, encryption_key, hash_key, compression_level)