asp.net和cookies特殊字符

时间:2011-04-11 12:22:59

标签: asp.net cookies

在使用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

1 个答案:

答案 0 :(得分:3)

&符号不是Cookie中允许的字符。有必要使用UrlEncode方法对cookie数据进行编码。

System.Web.HttpUtility.UrlEncode(cookie);

另见这些SO问题/答案: