今天在处理jsp页面传输信息的时候遇到了出现乱码的问题,现在分享一下解决方案:
首先如果是POST请求的话,在接受数据时应该先声明
request.setCharacterEncoding("utf-8");
然后再获取另一个页面传过来的参数,比如
String id=request.getParameter("id");
String type=request.getParameter("type");等。
但是如果是GET请求的话就不能再用这个方法了。用两种方法可以处理这种情况。
第一种是:
String type=request.getParameter("type");//先获取到目标数据
type= new String(type.getBytes("iso-8859-1"),"utf-8");//把目标数据以iso-8859-1的编码形式把一个字符串分解成一个字符数组,然后再以utf-8的格式new一个新的字符串
这样就不会再出现中文乱码的情况了,但是这种情况比较麻烦,因为要对每一个中文数据都要进行处理。那么还有一种更为简单的方法
第二种方法是:
修改Tomcat中配置文件的参数,一半Tomcat8.0以上的版本不会出现这种情况,只有8.0以下的按本会出现这种情况。
在Tomcat下conf文件夹下的server.xml文件中把 <Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
修改成<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="utf-8"/>
就可以了一劳永逸!!