public static String getDownloadFileName(HttpServletRequest request, String fileName) { String agent = request.getHeader("User-Agent").toUpperCase(); try { if (agent.indexOf("MSIE") > 0 || agent.indexOf("TRIDENT") > 0 || agent.indexOf("EDGE") > 0) { fileName = URLEncoder.encode(fileName, "UTF-8"); fileName = fileName.replaceAll("\\+", "%20"); } else { fileName = new String(fileName.getBytes("UTF-8"), "ISO8859-1"); } } catch (UnsupportedEncodingException e) { e.printStackTrace(); } return fileName; }