你如何在VB.NET的HTTPCookie中使用Ampersand?

dig*_*uru 1 vb.net cookies ampersand

我有一个cookie保存给用户如下...

Dim searchCookie As HttpCookie = New HttpCookie("SearchCriteria")
searchCookie.Item("SearchText") = FullSearchCriteria.SearchText
searchCookie.Item("SearchType") = FullSearchCriteria.SearchType
Run Code Online (Sandbox Code Playgroud)

SearchText存储他们在上一页中输入的值.我们观察到cookie中是否存在&符号(例如Tyne&Wear),然后cookie不保存后续值(SearchType).

会发生什么是cookie输出如下:

SearchText=Tyne &
Run Code Online (Sandbox Code Playgroud)

很明显,&符号令人困惑.有没有办法防止这种情况发生?

Mar*_*per 5

您可以使用URLEncode方法.

就像是:

imports HttpContext.Current
...
Dim searchCookie As HttpCookie = New HttpCookie("SearchCriteria")
searchCookie.Item("SearchText") = Server.UrlEncode(FullSearchCriteria.SearchText)
searchCookie.Item("SearchType") = Server.UrlEncode(FullSearchCriteria.SearchType)
Run Code Online (Sandbox Code Playgroud)

这是必不可少的,因为只有某些字符被允许使用符号(如&符号)打破它们.