同样问题记录一下 :
ASP.NET在VS2008下开发,使用内置的服务器时,一切良好,可是使用IIS时,完全一样的代码,突然很多数据得不到了。
因为使用的是母版页,一开始以为是Page_Load的顺序问题,搜了大半天,可始终无法解决。同样的SQL语句,where匹配包含俩个选项,用户名和单位,直接手写就OK,用变量就不行,抓狂了一上午。
后来发现用户名用的是英文,而单位是中文,原来是IIS的cookie存在乱码问题,一个小毛病折腾了大半天。。。 上网搜了一下,2分钟搞定,存入cookie的时候先编码,读取的时候再解码就可以了。具体代码如下:
//写入cookies时 string t =HttpUtility.UrlEncode(要写入到cookies的中文值); HttpCookie c = new HttpCookie("user_realname", t); Response.Cookies.Add(c); //读取cookies时 t=获取的中文cookies值; t = HttpUtility.UrlDecode(teacher_name);
或直接
//写入cookies时 Response.Cookies["unitId"].Value=HttpUtility.UrlEncode(unitId); //读取cookies时 string unitid = page.Request.Cookies["unitId"].Value.ToString().Trim(); unitid = HttpUtility.UrlDecode(unitid);
注意在GridView和其他涉及到该cookie字段的地方也要进行修改.
————————————————
原文链接:https://blog.csdn.net/war132553/java/article/details/5951431