您当前的位置: 首页 > 

梁云亮

暂无认证

  • 3浏览

    0关注

    1211博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

JSP中文乱码

梁云亮 发布时间:2019-11-05 08:44:47 ,浏览量:3

JSP中文乱码

所有乱码出现的原因都是:前后编码不一致。

URL中文乱码: 示例1:前端encode后端decode
  • 前端代码

    
    
    
    
        login
        
    
    
    	'>URL中文
    
    
    
  • 后端相关代码

    @WebServlet(urlPatterns = "/demoServlet")
    public class DemoServlet extends HttpServlet {
        @Override
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            request.setCharacterEncoding("UTF-8");
            String queryString = request.getQueryString();
            String res = URLDecoder.decode(queryString, "UTF-8");
            System.out.println(res);
    
            String k1 = request.getParameter("k1");
            System.out.println(k1);
            String k2 = request.getParameter("k2");
            res = URLDecoder.decode(k2, "UTF-8");
            System.out.println(res);
        }
    }
    

备注:本示例在本地tomcat中测试结果正确 在这里插入图片描述

示例2:前端URL的参数没有使用编码
  • 前端代码

    
    
    
    
        login
        
    
    
    	URL中文
    
    
    
  • 后端相关代码

    @WebServlet(urlPatterns = "/demoServlet")
    public class DemoServlet extends HttpServlet {
        @Override
        protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            doGet(req,resp);
        }
        @Override
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            request.setCharacterEncoding("UTF-8");
            String k1 = request.getParameter("k1");
            System.out.println(k1);
            String k2 = request.getParameter("k2");
            String res = new String(k2.getBytes("UTF-8"), "UTF-8");
            System.out.println(res);
        }
    }
    

备注:本示例在本地tomcat中测试结果正确 在这里插入图片描述

Post乱码

post乱码包含包括post请求乱码、post输出乱码两种情况,解决方案。

  • n前端代码

    
    
    
        login
        
    
    
        
            用户名:
            
        
    
    
    
  • 后端代码

    @WebServlet(urlPatterns = "/demoServlet")
    public class DemoServlet extends HttpServlet {
        @Override
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            request.setCharacterEncoding("UTF-8");
            response.setCharacterEncoding("UTF-8");
            response.setContentType("text/html;charset=utf-8");
    
            String uname = request.getParameter("uname");
            System.out.println(uname);
            PrintWriter out = response.getWriter();
            out.write("欢迎您:" + uname);
            out.flush();
            out.close();
        }
    
    }
    
  • 运行

  • 在这里插入图片描述 控制台输出结果: 在这里插入图片描述 页面结果: 在这里插入图片描述

关注
打赏
1665409997
查看更多评论
立即登录/注册

微信扫码登录

0.0479s