zoukankan      html  css  js  c++  java
  • asp.net cookie 获取时中文乱码问题

       此前用asp.net 做了个bbs程序 其中用到了session 与cookie 。测试一段时间用其程序没有问题,

    可是在昨天的时候发现,以前用中文名注册的名子,显示为乱码,之前从没显示为乱码。

       觉得不可思议。查询后方知

       中文cookie的问题,
        在Windows 2000正常,
        在Windows 2003 sp1下会偶尔出现乱码(遇到双字节特殊字符时候,例子:「`蹆绌),
        在windows 2003 SP2下基本乱码  

    解决办法:

    //写入cookies时

       HttpCookie cookie = new HttpCookie("bbslogin");
        System.Text.Encoding enc = System.Text.Encoding.GetEncoding("gb2312");
        cookie["userid"] = HttpUtility.UrlEncode(userid, enc);
         cookie["userpassword"] = HttpUtility.UrlEncode(a_userpassword,enc);

    //读取cookies时
    t=获取的中文cookies值;
     System.Text.Encoding enc = System.Text.Encoding.GetEncoding("gb2312");
      userid = HttpUtility.UrlDecode(cookie["userid"], enc);
      userpassword = HttpUtility.UrlDecode(cookie["userpassword"].ToString(), enc);

    这样就解决了,以后用的时候注意一下。

    cookies值判断不为空的方法,不能去判断和引用子键值,那样会报错:未将对象引用设置到对象的实例,正确方法应该是判断主键值,象下面这样:

    if (Request.Cookies["Assess"] == null)
    {
          ClientScript.RegisterStartupScript(Page.GetType(), "", MessageBox.Alert("缺少参数,不能访问这个页面", true));
          return;
    }

  • 相关阅读:
    【每日一题】 UVA
    【每日一题】 UVA
    【每日一题】 UVA
    【每日一题】 UVA
    【每日一题】UVA
    【每日一题】 uva-232 模拟+输出要求很严格
    【每日一题】 UVA
    MYSQL约束
    数据库,SQL分类
    类加载器&反射&模块化
  • 原文地址:https://www.cnblogs.com/superfeeling/p/2348495.html
Copyright © 2011-2022 走看看