页面1(文本编码UTF-8,html页面)html
POST表单到shop_list.jsp ,其中参数有name=name的input
页面2(shop_list.jsp)(文本编码仍是UTF-8。 且设置了contentType="text/html;charset=utf-8)tomcat
String name = Tools.RmFilter(request.getParameter("name")); //名称-搜索的 ... response.sendRedirect("/3g/news_list.jsp?name="+URLEncoder.encode(name, "utf-8")); ...
页面3 news_list.jsp 文本编码UTF-8,contentType同上服务器
//String name = new String(request.getParameter("name").getBytes("iso-8859-1"),"utf-8");//用这句话本地不会乱码,但服务器会乱码 String name = Tools.RmNull(request.getParameter("name"));//用这句话服务器不会乱码,但本地要乱码
问题就出在页面3这里。jsp
代码都同样,为何效果却不一样呢,开始我觉得是tomcat配置问题。结果我检查了server.xml文件,发现本地和服务器都没有设置tomcat的编码类型,因此都是默认的ISO-8859-1编码