欢迎来到淼淼之森的博客小站。  交流请加我微信好友: studyjava。  也欢迎关注同名公众号:Java学习之道

java导出excel或word等文件名乱码问题解决方法

  |   0 评论   |   0 浏览

导出excel文件名乱码主要是因为httpServletResponse的header编码问题。

但是,不同浏览器编码又不同!

解决方案

经过测试,使用以下方法解决:

设置Response头信息编码

if ("IE".equals(getBrowser(request))) {
        fileName = new String(java.net.URLEncoder.encode(fileName, "UTF-8"));
        response.setHeader("Content-Disposition", "attachment;filename=" + fileName);
    } else {
        fileName = new String(fileName.getBytes("UTF-8"), "iso-8859-1");
        response.setHeader("Content-Disposition", "attachment;filename=" + fileName);
    }

    /**
     * 判断客户端浏览器类型
     * @param request
     * @return
     */
    private String getBrowser (HttpServletRequest request){
        String UserAgent = request.getHeader("User-Agent").toLowerCase();
        if (UserAgent.indexOf("firefox") >= 0) {
            return "FF";
        } else if (UserAgent.indexOf("safari") >= 0) {
            return "Chrome";
        } else {
            return "IE";
        }
    }

经过以上设置,并验证了谷歌、火狐、搜狗、360、IE这几个浏览器,导出excel的文件名均无乱码。


标题:java导出excel或word等文件名乱码问题解决方法
作者:jerrycookie
地址:https://www.mmzsblog.cn/articles/2023/07/25/1690274937510.html

如未加特殊说明,文章均为原创,转载必须注明出处。均采用CC BY-SA 4.0 协议

本网站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。若本站转载文章遗漏了原文链接,请及时告知,我们将做删除处理!文章观点不代表本网站立场,如需处理请联系首页客服。
• 网站转载须在文章起始位置标注作者及原文连接,否则保留追究法律责任的权利。
• 公众号转载请联系网站首页的微信号申请白名单!

个人微信公众号 ↓↓↓                 

微信搜一搜 Java 学习之道