首先庆祝一下自己开始准备想要写自己的博客,目前博客内容主要是写在JAVA学习中,自己遇到的问题与解决方案。希望可以与广大网友共同学习,共同进步。
首先说明今天遇到的问题,在tomcat服务其中,它的编码采用了 “ISO-8859-1” ,这个不支持中文,我们一般用中文的编码机都是采取“UTF-8”形式。那么,当我们想使用resp.sendRedirect()这个方法,反回中文的时候,我们需要怎么处理呢。在说明处理方法之前再提出一个小知识点。就是 这个方法怎么反回变量?
是这样反回的
String flag = "用户名密码错误!";
resp.sendRedirect("Login?flag="+flag);
按照格式可以看出来
进入正题,首先我们应在把我们要反回的这个变量赋值,并让这个String 类型变量里面是用UTF-8存储的。然后反回这个变量,代码如下(题外话:这个操作实在我自己项目的接收页面):
String flag = "用户名密码错误!";
flag = java.net.URLEncoder.encode(flag.toString(),"UTF-8");
resp.sendRedirect("Login?flag="+flag);
这时候需要作什么?在反回页面也就是需要接受的页面
当然是将字符串按 iso-8859-1进行编码 然后再按UTF-8进行解码,这样就可以输出中文了,废话不说,上代码
当然这里面会有异常,大佬已经可以发现了,经过研究没有解决异常的可以参考我的其他博客,对这个有讲解
String flag2 = req.getParameter("flag");
String temp = null;
temp = new String(flag2.getBytes("ISO-8859-1"),"UTF-8");
这样测试结果就可以反回并且输出中文了!!