在使用cookies的asp.net中发现了非常有趣的问题: 添加值为test&的cookie时 使用
HttpCookie cookie = new HttpCookie("test", "test&");
Response.Cookies.Add(cookie);
然后尝试检索值Request.Cookies [“test”]尾随&符号丢失。如果没有尾随它就不会丢失。在firebug或javascript数据是正确的,所以我认为它是asp.net特定的。 当然大多数人可以说只使用UrlEncode。但这真的有必要吗?是否有任何不允许的Cookie包机列表(因为我认为它比URL小)? 我找到了类似的话题,但没有&限制清单中的符号: Allowed characters in cookies
答案 0 :(得分:3)
&符号不是Cookie中允许的字符。有必要使用UrlEncode
方法对cookie数据进行编码。
System.Web.HttpUtility.UrlEncode(cookie);
另见这些SO问题/答案: