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;
    }

  • 相关阅读:
    spark,hadoop集群安装注意
    TFRecord 使用
    python 路径引用问题
    flask使用模板
    tensorflow serving 模型部署
    docker使(二)—发布node应用镜像和容器
    docker使用(一)
    tensorBoard使用
    【疑难杂症】访问所有mapper方法都提醒invalid bound statement (not found)
    win10配置jdk12环境变量
  • 原文地址:https://www.cnblogs.com/superfeeling/p/2348495.html
Copyright © 2011-2022 走看看