将文件名编码成ISO8859-1是有效的解决方案,在火狐、IE浏览器上好用:
response.setContentType("application/x-msdownload");
response.setHeader( "Content-Disposition", "p_w_upload;filename=" +
new String( fileName.getBytes("gb2312"), "ISO8859-1" ) );
转载于:https://blog.51cto.com/11018872/1830044