做JSP的时候有时候需要使用js的超链接传递参数到servlet,但是如果我们传递中文则会乱码,那么如何解决呢?
1、我是这样做的,在超链接的使用encodeURI()进行二次编码:
$("#loginbtn").on('click', function () {
var txtFileName = $("#txtFileName").val();
var filename= encodeURI(encodeURI(txtFileName));
alert(filename);
window.location="CreateFileServlet?fileName="+filename;
});
encodeURI是javascript的方法。
2、在servlet中解码,超链接是get请求,我把该请求转到post里面了,直接在doget中调用dopost即可。
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String fileName = URLDecoder.decode(request.getParameter("fileName"), "utf-8");
System.out.println(fileName);
}
这样就可以传递中文了。