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"); }