产生乱码的原因:编码不一致
解决方法:
一般情况,contentType=“text/html;charset=gb2312”
当以post方式表单提交的乱码处理.例子如下
~~~~~~~~~~~~ tes1.jsp
<body>
<form action="getinfo.jsp" method="post">
请输入中文进行测试:<br>
<input type="text" name="test" value="我是中文">
<input type="submit" value="提交">
</form>
</body>
~~~~~~~~~~~~ getinfo.jsp
<body>
//方法一
request.setCharacterEncoding("gb2312");
String str=request.getParameter("test");
//方法二
String str=new String(request.getParameter("test").getBytes("ISO-8859-1"),"gb2312");
out.print(str);
%>
</body>
当以get方式表单提交的乱码处理.例子如下
~~~~~~~~~~~~ tes2.jsp
<body>
<form action="getinfo.jsp" method="get">
请输入中文进行测试:<br>
<input type="text" name="test" value="我是中文">
<input type="submit" value="提交">
</form>
</body>
~~~~~~~~~~~~ getinfo.jsp
<body>
//方法一(不能处理乱码)
request.setCharacterEncoding("gb2312");
String str=request.getParameter("test");
//方法二
String str=new String(request.getParameter("test").getBytes("ISO-8859-1"),"gb2312");
out.print(str);
%>
</body>
更改tomcat的server.xml文件, <Connector port=8080 .....URIEncoding="gb2312"/>
<Connector port=8009 .....URIEncoding="gb2312"/>
注意用了这种方法:
~~~~~~~~~~~~ getinfo.jsp
<body>
//方法一
request.setCharacterEncoding("gb2312");
String str=request.getParameter("test");
//方法二(不能处理乱码)
String str=new String(request.getParameter("test").getBytes("ISO-8859-1"),"gb2312");
out.print(str);
%>
</body>