zoukankan      html  css  js  c++  java
  • 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);
        }
      }
    }

     

       这样问题就解决了。

  • 相关阅读:
    Java8简明教程第二章
    Java8简明教程-2
    Java8简明教程第一章
    Java8简明教程-1
    redis的初级使用
    hdu--4681--dp
    hdu--5091--线段树
    hdu--1542&&1255&1828--线段树<扫描线>
    hdu--5139--bc
    hdu--5128--计算几何<算不上.暴力模拟> && hdu--5131--初级cmp
  • 原文地址:https://www.cnblogs.com/mkdlf/p/5895895.html
Copyright © 2011-2022 走看看