java文件下载程序中,解决汉字文件名乱码

String downloadfile = URLEncoder.encode(filepath,"UTF-8");

response.addHeader("Content-Disposition","attachment;filename=" + downloadfile );

乱码就是乱在;filename=" + downloadfile 这里,对文件名的编码设定上。

使用URLEncoder.encode(filepath,"UTF-8")虽然可以解决在提示下载框中正确显示汉字文件名的问题,并且在选择保存,然后打开的情况下,文件名称也可以正确的显示。

但是在提示下载框中,选择直接打开,则文件名称变成了类似“%E7%BB%99%E7%94%A8%E6%88%B7%E6%8F%90%E4%BE%9B%E7%9A%84%E4%B8%8B%E8%BD%BD%E6%96%87%E4%BB%B6%E5%90%8D”的样子。

为了解决这个问题,最后采用了如下代码:

String downloadfile = new String(filepath.getBytes("gb2312"),"iso8859-1");

response.addHeader("Content-Disposition","attachment;filename=" + downloadfile );

虽然在debug模式下,我们会发现downloadfile在被编码成iso8859-1后,值变成了“。。。。.xls”这样的乱码,但是在下载时,显示是一切正常的。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值