POI 火狐下载文件-中文文件名乱码

fileName = new String((fileName).getBytes("UTF-8"), "ISO8859_1")+Dates.formatDateTime_New(new Date());

response.setContentType("application/vnd.ms-excel");

response.setHeader("Content-disposition", "attachment;filename=" + fileName.replace(" ", "_") + ".xls");

UTF-8文件名正常显示,gb2312中文乱码,所以要用UTF-8

 

以下两种代码都是可以的


	private void initResponseHeader(HttpServletResponse response) throws UnsupportedEncodingException {
		StringBuilder stringBuilder = new StringBuilder();
		stringBuilder.append("办赛申请");
		stringBuilder.append("_");
		stringBuilder.append(DateUtil.formatByPattern(Instant.now().toEpochMilli(), DateUtil.DATE_FORMAT));
		stringBuilder.append("_");
		stringBuilder.append(UUIDUtil.getUUID());
		stringBuilder.append(".xlsx");

        //解决中文文件名不显示
        String fileName = new String(stringBuilder.toString().getBytes("UTF-8"), "iso8859-1") ;

        //设置Http响应头告诉浏览器下载这个附件
        response.setHeader("Content-disposition", "attachment; filename=" + fileName);
        response.setContentType("application/vnd.ms-excel");
        response.setCharacterEncoding("UTF-8");
	}

 

private void initResponseHeader(HttpServletRequest request, HttpServletResponse response) throws UnsupportedEncodingException {
        StringBuilder stringBuilder = new StringBuilder();
        stringBuilder.append("企业用户");
        stringBuilder.append("_");
        stringBuilder.append(DateUtil.formatByPattern(Instant.now().toEpochMilli(), DateUtil.DATE_FORMAT));
        stringBuilder.append("_");
        stringBuilder.append(UUIDUtil.getUUID());
        stringBuilder.append(".xlsx");

        //解决中文文件名不显示
        String fileName = new String(stringBuilder.toString().getBytes("UTF-8"), "iso8859-1") ;

        response.setContentType("application/octet-stream");
        response.setContentType("application/x-download");

        //设置Http响应头告诉浏览器下载这个附件
        response.setHeader("Content-disposition", "attachment; filename=" + fileName);
        response.setCharacterEncoding("UTF-8");

    }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值