为什么cookie保存中文会有问题?
保存:
#region 保存 Cookies
HttpCookie cookie = new HttpCookie("LoginInfo");
cookie.Values["UserName"] = sUserName;
cookie.Values["Password"] = sPassWord;
if (sCookies == "0")
{
cookie.Expires = DateTime.MinValue;
}
else
{
cookie.Expires = DateTime.Now.AddDays(int.Parse(sCookies));
}
Response.Cookies.Add(cookie);
#endregion
读取:
#region 读取 Cookies 信息
if (Request.Cookies["LoginInfo"] != null)
{
string username = Request.Cookies["LoginInfo"]["UserName"];
string password = Request.Cookies["LoginInfo"]["Password"];
...
}
#endregion
英文的用户名和密码就没问题,中文的用户名就不行。
在网上找了一些方法:
cookie.Value = HttpUtility.UrlEncode(cookie.Value);
就是在保存和读取时用HttpUtility.UrlEncode处理,但我试了不行。
网上的例是是:Request.Cookies[cookieName].Value
而我用的是:Request.Cookies["LoginInfo"]["UserName"]
这个有关系吗,如何解决我的问题?
------解决方案--------------------
保存的时候用UrlEncode,读取的时候用UrlDecode