分享

兼容各浏览器的文件下载时中文名称乱码的解决方案

 ThinkTank_引擎 2016-01-27
Java代码  收藏代码
  1. public class DownloadServlet extends HttpServlet {  
  2.     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {  
  3.         // codes..  
  4.         String name = "中文名 带空格 的测试文件.txt";  
  5.         String userAgent = request.getHeader("User-Agent");  
  6.         byte[] bytes = userAgent.contains("MSIE") ? name.getBytes() : name.getBytes("UTF-8"); // name.getBytes("UTF-8")处理safari的乱码问题  
  7.         name = new String(bytes, "ISO-8859-1"); // 各浏览器基本都支持ISO编码  
  8.         response.setHeader("Content-disposition", String.format("attachment; filename=\"%s\"", name)); // 文件名外的双引号处理firefox的空格截断问题  
  9.         // codes..  
  10.     }  
  11. }  


这段代码处理了文件下载时不同浏览器解析中文文件名所出现的乱码问题和firefox的空格截断问题,在IE9, chrome, opera, safari, firefox下均测试通过。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多