文件下载文件名不匹配和乱码问题

在Java中处理文件下载时,可能会遇到文件名不匹配和中文乱码的困扰。通过设置响应头`Content-Disposition`,可以指定附件的文件名,但针对中文乱码,由于不同浏览器的解析差异,需要采取额外措施来确保正确显示。要解决这个问题,通常需要获取浏览器标识并根据标识调整编码方式,以保证在各种浏览器环境下都能正确显示文件名。
摘要由CSDN通过智能技术生成
解决文件下载正确文件名和中文乱码问题

在这里插入图片描述
文件下载的时候,需要服务器通过响应头将文件的信息告知浏览器

resp.setHeader(“Content-Disposition”, “attachment;filename=”)
	resp.setHeader("Content-Disposition", "attachment;filename="+fileName);

中文乱码问题:
在这里插入图片描述

不同的浏览器有自己的编码解析方式:
因此需要获取浏览器标识:

// 处理下载文件中文乱码问题
		String header = req.getHeader("User-Agent");
		if(header.contains("MSIE")) {
			// IE
			fileName = URLEncoder.encode(fileName,"UTF-8");
		}else{
			// 非IE
			fileName = new String(fileName.getBytes("UTF-8"),"ISO-8859-1");
		}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值