不管你是在js中用encodeURIComponent还是encodeURI对所要传递的内容转码两次就可以了,然后在jsp中java.net.URLDecoder.decode进行解码,中文即可显示正确。

js

 
  
  1. var username = "我是中文"
  2. encodeURIComponent(encodeURIComponent(username); 

或者

 
  
  1. var username = "我是中文"
  2. var url = "http://localhost:8080/username="+username; 
  3. window.open(encodeURI(encodeURI(url))); 

jsp

 
  
  1. java.net.URLDecoder.decode(request.getParameter("username"),"UTF-8");