解决方法一:
JavaScript:
window.self.location="searchbytext.action?searchtext="+encodeURIComponent(encodeURIComponent(seartext));
java:
searchtext=java.net.URLDecoder.decode(searchtext,"UTF-8");
为什么要两次编码的原因:
后台java代码直接request.getParameter("projectname")就已经乱码了,还没调用URLDecoder.decode。
找资料发现调用request.getParameter的时候java会自动对word进行一次解码,所以就乱码。既然java会自动对word进行一次解码,那我们在前台进行2次编码,然后后台URLDecoder.decode(request.getParameter("projectname"),"utf-8″)就可以解决乱码的问题。
解决方法二:
另外还有一种方法是JavaScript进行一次编码,后台java处理时换种想法就好了:
java代码:
String s = new String(request.getParameter("name").getBytes("ISO8859-1"), "UTF-8");
版权声明:本文为博主原创文章,未经博主允许不得转载。
encodeURIComponent编码后java后台解码乱码的解决
原文地址:http://blog.csdn.net/m631521383/article/details/47832299