Home encodeURIComponent编码和后台解码
Post
Cancel

encodeURIComponent编码和后台解码

方法一

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");
This post is licensed under CC BY 4.0 by the author.