js获取url中的参数乱码

问题描述:

我的url为:test.jsp?lastname=杨涛
js是这么写的
window.onload=function(){

alert(GetQueryString("lastname"));
}
function GetQueryString(name) {

var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)","i");

var r = window.location.search.substr(1).match(reg);

if (r!=null) return unescape(r[2]);
return null;}
得到的结果:
图片说明

怎么让他正确显示中文“杨涛”

方法一:在顶部加

    <%
            request.setCharacterEncoding("UTF-8");
            response.setCharacterEncoding("UTF-8");
    %>

方法二:把方法一的写在过滤器里面filter,然后再web.xml里面配置

方法三:

 <%=new String(request.getParameter("lastname").getBytes("ISO-8859-1"),"UTF-8")%>

传递到服务器的时候编码应该是默认ISO-8859-1,取的时候解码方式要对应

在url拼接的时候把中文编码一下,然后在使用的时候解码

前后台都设置一下编码的格式