• cookie中文乱码


    在学习当中碰到cookie中文乱码问题,问题原因:cookie对中文不太支持,将中文放入cookie中会报错误。

       解决办法:

          1.编码

            将中文进行编码再放入cookie中:

            String username1 = URLEncoder.encode(username, "utf-8");

            String userpwd1 = URLEncoder.encode(userpwd, "utf-8");

            其中username和userpwd其中有中文,username1和userpwd1是进行编码之后的字符串。

            比如:(我这里做的是三天免登陆)

            Cookie loginCookie = new Cookie("loginCookie",username1+":"+userpwd1);

            //将编码后的内容放到Cookie中

            loginCookie.setMaxAge(24*3600);

            //设置loginCookie的有效期3天 24小时*60分钟*60秒

            resp.addCookie(loginCookie);

             //将loginCookie响应到浏览器

          2.解码(如果不进行解码,页面会获取的是base64编码后的内容)

            String unamePwd = URLDecoder.decode(cookies[i].getValue(),"utf-8"); 

            其中cookies[i].getValue()是要进行解码的内容,根据自己的情况进行修改。

            我的代码:

    //创建存放用户名密码的map
    Map<String,String> loginMap = new HashMap<String,String>();

    //获取cookies
    Cookie[] cookies = req.getCookies();
    //进行判断
    if(cookies!=null) {
      for(int i=0;i<cookies.length;i++) {
        if(cookies[i].getName().equals("loginCookie")) {
          String unamePwd = URLDecoder.decode(cookies[i].getValue(),"utf-8");
          String[] up = unamePwd.split(":");
          loginMap.put(up[0], up[1]);
          req.getSession().setAttribute("loginMap",loginMap);
        }
      }
    }

     

       这样问题就解决了。

  • 相关阅读:
    C语言实现五子棋简单功能
    C语言学习笔记——堆和栈——未整理
    《C和指针》章节后编程练习解答参考——第10章
    华为06年面试题——求交换数组元素后差值最小方案
    丢沙包游戏(或杀人游戏)的C语言实现
    《C和指针》章节后编程练习解答参考——第9章
    PHP函数:array_key_exists
    PHP函数:php_sapi_name
    PHP函数:json_last_error
    PHP函数:func_num_args
  • 原文地址:https://www.cnblogs.com/mkdlf/p/5895895.html
Copyright © 2020-2023  润新知