首先,在JS中将要传递的中文编码:encodeURI(encodeURI(value));
然后在跳转界面中取值时通过以下方式解码:.URLDecoder.decode(value , "UTF-8");//如果界面都是用UTF-8格式编码的话。
对于JSP文件和servlet或者JSP之间通过POST方式传递中文时,一般在界面head中加上:request.setCharacterEncoding("utf-8");就可以解决大部分的乱码问题了。
对于POST和GET解决乱码的总结:
request.setCharacterEncoding("UTF-8"); 是针对form表单Method="POST"提交时起作用。
new String(str.getBytes("iso-8859-1"),"UTF-8"); 是针对form表单Method="GET"提交时起作用。
注意:
对于URL传递的数据和表单中GET方式提交的数据,在接收页面中通过设置request.setCharacterEncoding("UTF-8")来解决乱码问题是不行的,因为在Tomcat5.0以上版本中,默认情况下使用ISO- 8859-1对URL提交的数据和表单中GET方式提交的数据进行重新编解码.
要解决该问题,应该在Tomcat的配置文件的Connector标签中设置useBodyEncodingForURI或者 URIEncoding属性,其中useBodyEncodingForURI参数表示是否用request.setCharacterEncoding 参数对URL提交的数据和表单中GET方式提交的数据进行重新编码,在默