在Python中设置unicode cookie的通用方法



如果value中有空格,则只有第一个单词使用"example"代码保存到cookie中。

一个真正正确的,兼容unicode的方法是什么?

response.headers.add_header(
  'Set-Cookie',
  '%s=%s; expires:Sun, 31-May-2020 23:59:59 GMT; path=/;' % (key, value))

乌利希期刊指南。

工作终于完成了:

  1. Cookie与Cookie一起逃脱。SimpleCookie
  2. 未转义的自定义代码
  3. unicode编码/解码字符串的编码/解码

代码:

import Cookie
def set_unicode_cookie(response, key, value):
  c = Cookie.SimpleCookie()
  c[key] = value.encode('unicode-escape')
  c[key]["expires"] = "Sun, 31-May-2020 23:59:59 GMT"
  c[key]["path"] = "/"
  response.headers.add_header('Set-Cookie', c[key].OutputString())
def get_unicode_cookie(request, key, defult_value):
  def unescape(s):
    m = re.match(r'^"(.*)"$', s)
    s = m.group(1) if m else s
    return s.replace("\\", "\")
  if request.cookies.has_key(key):
    return unescape(request.cookies[key]).decode('unicode-escape')
  else:
    return default_value

相关内容