我在登录页面用cookie 保存了用户名,但是一遇到汉字,登录了就成了乱码,我在网上找了相关的资料,试了结果还是没解决乱码这个问题,请大虾指点几招
我在配置文件中加了如下 :(还是乱码)
<globalization     
                         requestEncoding="gb2312"     
                         responseEncoding="gb2312"     
        />

解决方案 »

  1.   

    <globalization
    requestEncoding="gb2312"
    responseEncoding="gb2312"    
    />好像和coolies没有什么关系吧
      

  2.   

    如果需要将中文写入cookie
    则在写cookie时,需要 HttpUtility.UrlEncode("xxxxx")读出cookie时,HttpUtility.UrlDecode()
      

  3.   

    页面 gb2312 ?
    写 UrlEncode ?
    读 UrlDecode ?
      

  4.   

    当然会乱码了 。 你必选加上这个
    NameValueCollection nv = HttpUtility.ParseQueryString(Request.Url.Query, Encoding.GetEncoding("GB2312"));
      

  5.   

    命名空间 加这个  using System.Collections.Specialized;  再不行 给我发信息。
      

  6.   

    错误 1 当前上下文中不存在名称“Encoding” F:\code\zcProject\videosub\tt.aspx.cs 29 90 F:\...\videosub\
      

  7.   

    例如
    public void databind()
        {
            try
            {
                NameValueCollection nv = HttpUtility.ParseQueryString(Request.Url.Query, Encoding.GetEncoding("GB2312"));
                string proname = nv["ID"];
                string sqlstr = "select * from btproduct where productname like'%" + proname + "%'";
                                  }
      

  8.   

     假如name = Request.Cookies["MyCookie"]["Data"].ToString();
    然后要怎么做呢
      

  9.   

    name = nv["MyCookie"]; 试试 , 我还不信了。搞不定这个小问题。
      

  10.   

    呵呵 我帮你写吧。 
     NameValueCollection nv = HttpUtility.ParseQueryString(Request.Url.Query, Encoding.GetEncoding("GB2312")); 
    --------------------------------------------------
           Request .Cookies [].Value .ToString ();
    ----------------------------------------------------------
     NameValueCollection nv = HttpUtility.ParseQueryString(Request .Cookies [].Value .ToString (), Encoding.GetEncoding("GB2312")); 
    ------------------------------------------------------------
      

  11.   

    我是在测试
    name = Request.Cookies["MyCookie"].ToString();
                    NameValueCollection nv = HttpUtility.ParseQueryString(Request.Url.Query, System.Text.Encoding.GetEncoding("GB2312"));
                    name = nv["MyCookie"];
    然后我让它输出就是没值,说明错了
      

  12.   

    是的 那个是 页面传值 , 是空的。我已经把它换成 只能把 url 的页面值 换成 cookie 
      

  13.   

    存的时候 Server.UrlEncode 加玛  取的时候用 Server.UrlDecode 进行解码就不会错了
      

  14.   

    换成cookie也得不到值,不知道为什么了
      

  15.   

    刚才 测试发给我一些错误 。我要去改代码。 
    问题就是在
    NameValueCollection nv = HttpUtility.ParseQueryString(Request .Cookies .Value .ToString (), Encoding.GetEncoding("GB2312")); 
    然后
    name = nv["MyCookie"]; Request .Cookies .Value .ToString {} 把这个东西换上 应该可以。
      

  16.   

    解决了吗。 我写的代码不贴 了 
    你看看这个吧
    http://www.czbin.cn/NET.COOKIES.CODE.001.php
      

  17.   

    还没有
    http://www.uctube.cn/ 用1004天使 密码:1004天使 登录,你就可以看到,出现的乱码
      

  18.   

    这个和lz有一样的疑惑,不过ls的某个说出接法了
      

  19.   

    我把我写的完整的代码给你, 你参考一下。
    写入用的代码;------------------------------这是页面传值,cookie方法是一样的
     Response.Redirect("../corporation/proList.aspx?ID=" + HttpUtility.UrlEncode("数字健康", Encoding.GetEncoding("GB2312")));
    -----------------------------------------------------获得传值
    NameValueCollection nv = HttpUtility.ParseQueryString(Request.Url.Query, Encoding.GetEncoding("GB2312"));
    string proname = nv["ID"];
    string sqlstr = "select * from btproduct where productname like'%" + proname + "%'";
    ---------------------------把里面的页面传值 换成cookie 就可以了。
      

  20.   

    写的时候 Server.UrlEncode 编码;
    读的时候 Server.UrlDecode 解码;
    这样就吗,没有任何问题了