方法一
JavaScript
1
2
window.self.location = "searchbytext.action?searchtext="
+ encodeURIComponent(encodeURIComponent(seartext));
Java
1
searchtext = java.net.URLDecoder.decode(searchtext, "UTF-8");
两次编码的原因:后台Java代码给searchtext赋值的时候,本身已经使用了一次解码,不过解码的结果依然不对。所以我们可以在页面上进行两次编码操作,这样后台自动的那次就可以抵消掉,然后使用searchtext = java.net.URLDecoder.decode(searchtext, "UTF-8");
进行一次解码就好了。
方法二
另外还有一种方法是JavaScript进行一次编码,后台Java处理时换种写法就好了: JavaScript
1
2
window.self.location = "searchbytext.action?searchtext="
+ encodeURIComponent(seartext);
Java
1
2
String s = new String(request.getParameter("searchtext")
.getBytes("ISO8859-1"), "UTF-8");