IE浏览器上jsp传参乱码,谷歌不乱码
在前端jsp进行两次编码
如下:
href="a.jsp?path=<%=d.getT()%>&name=<%=java.net.URLEncoder.encode(java.net.URLEncoder.encode(d.getNname(),"GBK"),"GBK")%>"
在后端接收时进行两次解码,
如下:
String name = request.getParameter("name");
name =java.net. URLDecoder.decode(URLDecoder.decode(name, "GBK"), "GBK");
必须进行两次编码解码,才可以在IE上不乱码,一次编码解码可以保证谷歌不乱码。
编码解码格式一致即可,也可以UTF-8。
String userAgent = request.getHeader("USER-AGENT");
if(StringUtils.contains(userAgent, "MSIE")){//IE浏览器
fileDownloadName =java.net.URLEncoder.encode(fileDownloadName,"UTF8");
}else if(StringUtils.contains(userAgent, "Mozilla")){//google,火狐浏览器
fileDownloadName = new String(fileDownloadName.getBytes("utf-8"), "ISO8859-1");
}else{
fileDownloadName = java.net.URLEncoder.encode(fileDownloadName,"UTF8");//其他浏览器
}