在jsp中用form表单通过post方式解决乱码问题是很好解决的,request提供了一个叫setCharacterEncoding()方法,可以用来设置编码,直接在<% %>里面写request.setCharacterEncoding("UTF-8");
例<%request.setCharacterEncoding("UTF-8"); %>
但当我们用get方式提交数据时这个方法就不起作用了,那么我们应该怎么做才能保证不乱码呢?
这时可以通过getBytes()方法设置编码了
例在jsp页面写
<a href="getPage.jsp?name=路飞&age=18&sex=男&hobby=航海">get方式请求数据</a>,
然后在另一个叫getPage.jsp页面写
<%String name = request.getParameter("name"); out.print("游客"+name); %>,
这时我们可以看到a标签里的name是中文,此时就会乱码
现在我们就用getBytes()方法解决乱码问题
我们来改一下getPage.jsp页面里的东西,改为
<%String name = new String(request.getParameter("name").getBytes("ISO-8859-1"),"UTF-8"); out.print("游客"+name); %>,此时乱码问题就解决了!