2

Django で複数値の Cookie を作成する場合、各キーと値のペアの間に区切り記号を指定して、Cookie が 8 進表現ではなく区切り記号の ASCII 文字表現を受け取るようにするにはどうすればよいですか? これが私が現在行っていることです:

uid = 1
dev = 'computer'
cookie_value = 'uid:%s,dev:%s' % (uid, dev)
response.set_cookie(key="profile", value=cookie_value)

これを Python デバッガーで実行すると、cookie_value には以下が含まれます。

'uid:1,dev:computer'

ただし、ブラウザで Cookie を調べると、次のように表示されます。

'uid:1\054dev:computer'

Django で '\054' をカンマに置き換えるにはどうすればよいですか?

ありがとう。

4

1 に答える 1

2

あなたの答えはここにあります

クッキーのエンコーディング

Internet Explorer、Safari、および場合によってはその他のブラウザーでの Cookie のバグを修正するために、Cookie 値のエンコードが変更され、コンマとセミコロンの文字が安全でない文字として扱われるようになり、\054 と \073 としてエンコードされます。それぞれ。特にコンマまたはセミコロンを Cookie に格納していて、Cookie 値をクライアント側で解析および操作する JavaScript コードがある場合は、下位互換性が失われる可能性があります。

于 2013-06-28T00:55:26.897 に答える