一个aspx的页面(这是一个专门处理异步的页面)直接访问这个页面cookies不会乱码(因为提交的时候我要获取用户信息进行操作。不要说我写入cookies的时候没编码),不会出问题如果用Jquery 中的$.ajax 提交到这个页面的时候再获取cookies时候就乱码了。请问有没有人知道。

解决方案 »

  1.   

    这东西没必要贴出代码吧?就是如果从地址栏直接访问这个页面。到后台获取cookies中的文本。显示正常。然后如果是异步访问这个页面。到后台获取cookies中的文本就乱码。
      

  2.   

    lz介绍有点模糊。
    ajax在传参数,可用js encodeURIComponent(“你的参数”) 处理转义编码问题
    读写cookie,可用如下代码,未遇到过cookie乱码/// <summary>
            /// 写cookie值
            /// </summary>
            /// <param name="strName">名称</param>
            /// <param name="key">键</param>
            /// <param name="strValue">值</param>
            public static void WriteCookie(string strName, string key, string strValue)
            {
                HttpCookie cookie = HttpContext.Current.Request.Cookies[strName];
                if (cookie == null)
                {
                    cookie = new HttpCookie(strName);
                }
                cookie[key] = strValue;
                HttpContext.Current.Response.AppendCookie(cookie);        }       /// <summary>
            /// 读cookie值
            /// </summary>
            /// <param name="strName">名称</param>
            /// <returns>cookie值</returns>
            public static string GetCookie(string strName)
            {
                if (HttpContext.Current.Request.Cookies != null && HttpContext.Current.Request.Cookies[strName] != null)
                {
                    return HttpContext.Current.Request.Cookies[strName].Value.ToString();
                }            return "";
            }
      

  3.   

    ajax一定要用utf-8,可以转码一下
      

  4.   


    改编码?在登录的时候就把信息写入进去了。有些用户名是中文的。当地址栏直接访问这个页面的时候,然后到后台获取cookies的中文值时候没问题。如果异步到这个页面。再获取cookies的中文值的时候就乱码了。麻烦您告诉该怎样编码?直接访问的时候cookies的中文值没问题。请问这是跟编码有关系?