js和java 地址栏提交中文

JAVA:

<%
       request.setCharactor("utf-8");
       response.setCharactor("utf-8");

       if(username != null && username.length() != 0) {
        //两次转码
username = java.net.URLEncoder.encode(URLEncoder.encode(deviceName, "utf-8"), "utf-8"));
}
else {
        username
="";
    }
    out.println(
"<a href='allUsers.jsp?username=" + username>首页</a>
%>


<%
    request.setCharactor("utf-8");
       response.setCharactor("utf-8");

    接受到参数之后
    username = java.net.URLDecoder.decode(username, "UTF-8");
%>



JS:

  if(deviceName == undefined) {
        deviceName = "";
    } else {
        //传说之中要转换两次,实际上也的确要转换两次,至于为什么 我就不知道了。
        //传说encodeURIComponent()这个方法只要一次,但是没有测试过。
        deviceName = encodeURI(deviceName);
        deviceName = encodeURI(deviceName);
    }
  

    var jsp = "useableDevice.jsp?deviceName=' + deviceName ;
   
    this.location.href=jsp;

在servlet或jsp接收之后

request.setCharactor("utf-8");
String deviceName = request.getParameter("deviceName");

if("undefined".equals(deviceName)) {
     deviceName = null;
} else if(deviceName != null && deviceName.length() != 0) {
     deviceName = java.net.URLDecoder.decode(deviceName, "utf-8");
}
原文地址:https://www.cnblogs.com/hzm112567/p/2764089.html